美文网首页
3.Nginx的反向代理

3.Nginx的反向代理

作者: 经纶先生 | 来源:发表于2017-12-19 13:14 被阅读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 后端服务器在负载均衡调度中的状态:

    • down #当前的server暂时不参与负载均衡
    • backup #预留的备份服务器
    • max_fails #允许请求失败的次数
    • fail_timeout #经过max_fails 失败后,服务暂停的时间
    • max_conns #限制最大的接收的连接数

    我们修改之前的实验:

    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有其他几种轮询规则:

    • 轮询:按时间顺序逐一分配到不同的后端服务器
    • 加权轮询:weight值越大,分配到的访问几率越高
    • ip_hash: 每个请求按照访问IP的hash结果分配,这样来自同一个IP的固定访问一个后端服务器
    • url_hash:按照访问的URL的hash结果来分配请求,比如服务器1有一部分资源,2有另一个资源,那么就需要url_hash
    • least_conn :最少连接数,哪个机器连接数少,就分发哪个
    • hash关键数值:hash自定义的key

    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  ;
     }
    

    相关文章

      网友评论

          本文标题:3.Nginx的反向代理

          本文链接:https://www.haomeiwen.com/subject/mepbwxtx.html