3.Nginx的反向代理

2017-12-19  本文已影响0人  经纶先生

nginx反向代理

反向代理就是负载均衡
负载均衡分为四层负载和七层负载
四层负载:基于IP+端口的负载
七层负载:基于URL的负载

nginx实现负载均衡的原理:
nginx使用proxy_pass来代理所有客户端的请求,然后转发到upstream_server 组

实验:

我们现在172.20.0.1和172.20.0.3上分别启动两个tomcat
修改下/app/zpy/dailiang/webapps/ROOT/下面图片
分别访问172.20.0.1:8080 和 172.20.0.3:8080 这两个可以看出页面不同即可

vim /etc/nginx/nginx.conf 
        
在http模块下添加:
upstream test {
server 172.20.0.1:8080;
server 172.20.0.3:8080;
 }

在server模块下修改:

server {
                listen       80;
                server_name  www.dailiang.corp;
                location / {
                proxy_pass http://test;
                }

                location /status {
                stub_status;
                }
        }

nginx 后端服务器在负载均衡调度中的状态:

我们修改之前的实验:

upstream test {
server 172.20.0.1:8080  down;
server 172.20.0.3:8080  backup;
server 172.20.0.4:8080  max_fails=1 fail_timeout=10s;
}

nginx调度算法:

默认轮询是按照顺序轮询的,nginx有其他几种轮询规则:

ip hash 配置方式:

upstream test {
ip_hash  #这样是有漏洞的,因为ip_hash是根据访问IP的,前端如果还有代理层就比较难办了
server 172.20.0.1:8080  ;
server 172.20.0.3:8080  ;
server 172.20.0.4:8080  ;
                }

url hash 配置方式:

upstream test {
hash $request_uri  #这样是有漏洞的,因为ip_hash是根据访问IP的,前端如果还有代理层就比较难办了
server 172.20.0.1:8080  ;
server 172.20.0.3:8080  ;
server 172.20.0.4:8080  ;
 }
上一篇 下一篇

猜你喜欢

热点阅读