Nginx反向代理
Nginx反向代理
使用Nginx实现Web反向代理功能,可以隐藏真实服务器的ip提高安全,在集群模式下,通过反向代理可以实现服务器集群的负载均衡配置,灵活调度,反向代理也是目前服务器提供服务的常用模式。

-
Nginx实现七层代理配置
-
Nginx配置
通过upstream配置块添加需要代理的服务器,配置文件写在server的上面。
http { ... upstream webserver { ##使用upstream定义代理的服务器或服务器集群,名称任意 server 192.168.99.100:80; ##填写服务器ip和端口 server 192.168.99.200:80; } server { listen 80; server_name localhost; ...在location块内使用proxy_pass参数调用集群。
location / { root html; index index.html index.htm; proxy_pass http://webserver; ##通过proxy_pass将用户的请求转发给webserver集群 } ... -
通过代理实现负载调度
默认情况下,集群内的主机是轮询访问的,可以通过配置参数来实现动态调度。
通过weight参数修改主机权重。默认的权重为1,权重越高,分配的访问次数越多。
.. .. upstream webserver { server 192.168.99.100:80 weight=2; server 192.168.99.200:80; } server { .. ..通过ip_hash参数设置ip绑定,指定源IP访问指定主机,该操作也可以用户与服务器的会话保持。
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf ... upstream webserver { ip_hash; server 192.168.99.100:80; server 192.168.99.200:80; } server { ...给集群内的服务器添加down标签,告知Nginx该服务器暂时不参与集群活动
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf ... upstream webserver { server 192.168.99.100:80; server 192.168.99.200:80 down; } server { ... -
集群健康检查机制
Nginx默认开启了健康检查,设置健康检查max_fails可以设置后台服务器连不上的失败次数,fail_timeout可以设置后台服务器的失败超时时间,等待多长时间再次尝试连接。
... upstream webserver { server 192.168.99.100:80; server 192.168.99.200:80 max_fails=2 fail_timeout=30; ##两次连接失败则判定为下线,等待30秒后再次尝试连接。 } server { ...
-
-
Nginx实现四层代理配置
除了代理网站,Nginx也可以实现对基于端口的其他服务代理。
!
![image]()
-
Nginx配置方式,配置方法与七层类似,指定被代理服务的IP和端口即可,使用steam块配置,需要写在http块的外面。
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf #配置写到http的上方即可 ... stream { upstream backend { #创建集群,名称为backend server 192.168.99.100:22; #后端SSH服务器IP和端口 server 192.168.99.200:22; } server { #调用集群 listen 12345; #Nginx代理监听的端口,可以自己定义 proxy_pass backend; #调用backend集群 } } http { .. .. }
-

浙公网安备 33010602011771号