• nginx 06-Nginx代理服务


    Nginx代理服务基本上有三种:

    • 正向代理
    • 反向代理
    • 透明代理
    配置语法:
        proxy_pass URL;
        (location、if in location,limit_except)
    

    反向代理配置案例

    server {
        listen       80;
        server_name  new.test.com;
    
        location ~ /test.html$ {
           proxy_pass http://127.0.0.1:8080;
        }
    }
    

    正向代理配置案例:

    server {
        listen       80;
        server_name  new.test.com;
    
        resolver 8.8.8.8;
        location / {
           proxy_pass http://$http_host$request_url;
        }
    }
    

    透明代理配置案例:

    server {
        listen       80;
        server_name  zabbix.liang.cn;
    
        location /{
            proxy_set_header host '192.168.10.31';
            proxy_set_header referer '';
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_pass  http://192.168.10.31;
        }
    }
    

    代理常用配置

    • 缓存区设置(默认打开)
    配置语法:
        proxy_buffering on | off;
        (http,server,location)
    扩展:proxy_buffer_size、proxy_buffers、proxy_busy_buffers_size
    
    • 跳转重定向
    配置语法:
        proxy_redirect default;
        proxy_redirect off;
        proxy_redirect redirect replacement;
        (http,server,location)
    
    • 头信息
    配置语法:
        proxy_set_header field value;
    默认:
        proxy_set-header Host $proxy_host;
        proxy_set_header Connection close;
        (http,server,location)
    扩展:proxy_hide_header、proxy_set_body
    
    • 超时
    配置语法:
        proxy_connect_timeout time;
        (http,server,location),默认60s
    扩展:proxy_read_timeout、proxy_send_timeout
    
    • 常用代理配置案例
    server {
        listen 80;
        server_name location;
        location / {
            procy_pass http://test;
            proxy_redirect default;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            
            proxy_connect_timeout 30;
            proxy_send_timeout 60;
            proxy_read_timeout 60;
            
            proxy_buffer_size 32k;
            proxy_buffering on;
            proxy_buffers 4 128k;
            proxy_busy_buffers_size 256k;
            proxy_max_temp_file_size 256k;
        }
    }
    

    Ngixn负载均衡

    配置语法:

    upstream name {..}
    (http)
    

    配置案例:

    http{
        upstream test {
            server 192.168.10.10:8080 down;
            server 192.168.10.10:8081 max_fails=1 fail_timeout=10s;
            server 192.168.10.11:8080 backup;
        }
        
        server {
            listen 80;
            server_name location;
            location / {
                procy_pass http://test;
            }
        }
    }
    

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

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

    调度算法

    • 轮询 --按时间顺序逐一分配到不同的后端服务器
    • 加权轮询 --weight值越大,分配到的访问几率越高
    • least_conn --最少链接数,那个机器连接数少就分发
    • ip_hash --每个请求按访问IP的hash结果分配,这样来自同一个IP的固定访问一个后端服务器
    upstream test {
        ip_hash;
        server 192.168.10.10:8080;
        server 192.168.10.10:8081;
        server 192.168.10.11:8080;
    }
    
    • url_hash --按照访问的URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
    upstream test {
        hash $request_uri;
        server 192.168.10.10:8080;
        server 192.168.10.10:8081;
        server 192.168.10.11:8080;
    }
    
    • hash关键数值 --hash自定义的key
  • 相关阅读:
    XMPP协议之消息回执解决方案
    使用js在网页上记录鼠标划圈的小程序
    数据库SQL,NoSQL之小感悟
    MongoDB安装与使用体验
    缓存遇到的数据过滤与分页问题
    Tomcat shutdown执行后无法退出进程问题排查及解决
    Apache Ignite之集群应用测试
    Ignite性能测试以及对redis的对比
    学习AOP之深入一点Spring Aop
    学习AOP之认识一下Spring AOP
  • 原文地址:https://www.cnblogs.com/liangjingfu/p/10677097.html
Copyright © 2020-2023  润新知