Nginx代理服务

2019-11-27 分类:Linux基础 阅读(317) 评论(0)

Nginx代理服务概述

什么是代理

代理我们往往并不陌生, 该服务我们常常用到如(代理租房、代理收货等等)

那么在互联网请求里面, 客户端无法直接向服务端发起请求, 那么就需要用到代理服务, 来实现客户端和服务通信

Nginx作为代理服务可以实现很多的协议代理, 我们主要以http代理为主

正向代理与反向代理

正向代理(内部上网) 客户端<-->代理->服务端

反向代理 客户端->代理<-->服务端

正向与反向代理的区别

区别在于代理的对象不一样
正向代理代理的对象是客户端
反向代理代理的对象是服务端

Nginx代理配置

Nginx代理配置语法

推荐写法

server{
listen 80;
server_name blog.nfsnobody.com;
location / {
proxy_pass http://172.16.1.7;
include proxy_params;
}
}
server{
listen 80;
server_name edu.nfsnobody.com;
location / {
proxy_pass http://172.16.1.7;
include proxy_params;
}
}

Nginx反向代理示例

角色      外网IP(NAT)     内网IP(LAN)         主机名

角色      外网IP(NAT)       内网IP(LAN)           主机名
Proxy     eth0:10.0.0.5     eth1:172.16.1.5     lb01
web01     eth0:10.0.0.7     eth1:172.16.1.7     web01

代理配置过程

web01服务器配置

配置一个网站,监听在8080,仅运行172网段能访问

[root@web01 ~]# cd /etc/nginx/conf.d/
[root@web01 conf.d]# vim web.conf
server {
listen 8080;
server_name 172.16.1.7;
location / {
root /code_8080;
index index.html;
deny 10.0.0.0/24;
allow all;
}
}
[root@web01 conf.d]# mkdir /code_8080
[root@web01 conf.d]# echo "web01-7...." &gt;/code_8080/index.html
[root@web01 conf.d]# systemctl restart nginx

代理服务器配置

proxy代理服务器:
配置一个代理,监听在80,让10.0.0.1客户端,能够通过代理访问到后端的 172.16.1.7这个网站

[root@lb01 ~]# cat /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
1.安装
[root@lb01 ~]# yum install nginx -y
2.配置
[root@lb01 ~]# cd /etc/nginx/conf.d/
[root@lb01 conf.d]# rm -f default.conf
[root@lb01 conf.d]# cat proxy_web_node1.conf
server {
listen 80;
server_name nginx.nfsnobody.com;
location / {
proxy_pass http://172.16.1.7:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
启动服务并加入开机自启动
[root@lb01 conf.d]# systemctl enable nginx
[root@lb01 conf.d]# systemctl start nginx
优化下proxy的配置
[root@lb01 conf.d]# cat /etc/nginx/proxy_params
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;

proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
######
[root@lb01 conf.d]# cat proxy_web_node1.conf
server {
listen 80;
server_name nginx.nfsnobody.com;
location / {
proxy_pass http://172.16.1.7:8080;
include proxy_params;
}
}
[root@lb01 conf.d]# systemctl restart nginx
配置hosts解析
proxy
10.0.0.5
172.16.1.5
web
172.16.1.7

代理缺点

只能代理转发一台服务器

proxy                -&gt; web 172.16.1.7

blog.nfsnobody.com      -&gt; blog.nfsnobody.com

错误排查思路

1.直接访问web测试是否没任何问题
2.检查proxy代理服务器是否有问题[没有携带头部信息|proxy_pass 写错了]

标签:

您可能也喜欢:

Keepalived高可用

Keepalived高可用概述 什么是高可用 什么是高可用双击热备, 一般指2台机器启动着相同的业务系统,当有一台机器down机了, 另外一台服务器能快速的接管, 对于访问的用户是无感知的。 高可用使用场景 那么高可用使用在什么场景,业务系统需要保证7x24小时不...

more

Nginx负载均衡-下部

负载均衡相关 负载均衡 F5    硬件 LVS   软件 Haproxy  支持四层和七层 Nginx  仅支持7层 配置Nginx4层负载均衡 通过访问负载均衡的5555端口,实际是后端...

more

Nginx负载均衡-上部

Nginx负载均衡 负载均衡的用处 Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中,实现负载的分发。那么会大大提升系统的吞吐率、请求性能、高容灾 什么是SLB Ngi...

more

欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称
邮箱
网站

切换注册

登录

忘记密码 ?

切换登录

注册