Nginx - linux 反向代理集群(负载)与跨域支持

  • upstream 上游服务(集群模块),只配制1台服务器就只有反向代理的作用
  • proxy_pass 代理地址,对应的是upstream名称
#-----------------------------------------------------------------------------------------------------
    #集群配置
    upstream tomcats {
        server 192.168.1.1:7080 max_conns=2;
        server 192.168.1.1:8080 max_conns=2;
    }


    server {
        listen       97;
        server_name  localhost;
        #开启跨域支持
        include       cros.conf;
        location / {
                proxy_pass http://tomcats;
        }


    }
    #------------------------------------------------------------------------------------------------------
  • 默认负载为轮询,weight设置权重,权重默认为1,例如:weight=1;
  • max_conns 服务最大连接数,起到限流(保护服务,保险丝的作用),使用共享内存,每一个work process都能够使用
  • slow_start slow_start=time需要weight支持,会覆盖权重(weight)在指定时间内,会缓缓的升级由0升级到设置的值,不适用于单个服务(高版本或者商业版可用)
upstream tomcats {
        server 192.168.1.173:8080 weight=6 slow_start=60s;
        server 192.168.1.174:8080 weight=2;
        server 192.168.1.175:8080 weight=2;
}
  • down 标记服务为不可用 
upstream tomcats {
        server 192.168.1.173:8080 down;
        server 192.168.1.174:8080 weight=1;
        server 192.168.1.175:8080 weight=1;
}
  • backup 标记为服务为备用,只有其他服务宕机后才会启用
upstream tomcats {
        server 192.168.1.173:8080 backup;
        server 192.168.1.174:8080 weight=1;
        server 192.168.1.175:8080 weight=1;
}
  • max_fails: 出错多少次,标记为宕机,不会在使用,默认值1
  • fail_timeout: max_fails达到宕机次数,fail_timeout设置时间保护,过了保护时间再访问,默认10秒
upstream tomcats {
        server 192.168.1.173:8080 max_fails=2 fail_timeout=15s;
        server 192.168.1.174:8080;
        server 192.168.1.175:8080;
}
  • location配置:
  • proxy_http_version 1.1;
  • proxy_set_header Connection "";
upstream tomcats {
        server 192.168.1.190:8080;
        keepalive 32;
}

server {
        listen       97;
        server_name  localhost;

        location / {
            proxy_pass  http://tomcats;
            # 配合 keepalive 开启,提升吞吐量,用于优化
            proxy_http_version 1.1;
            proxy_set_header Connection "";
        }
    }
  • ip hash 通过对请求的ip采用算法计算,分配到固定的服务器的一种负载方式
  • hash算法一致性减少服务器:如果有请求正在访问hash算法分配的服务器宕机了,会将他们分配至下一个服务器服务,其他新的请求会遵循原来的hash算法分配服务器
  • hash算法一致性增加服务器:当前请求不变,添加服务器后,hash位置就近的请求下一次请求时会重新计算,重新分配服务器
upstream tomcats {
        #开启 ip算法分配
        ip_hash;

        server 192.168.1.173:8080;
        server 192.168.1.174:8080;
        server 192.168.1.175:8080;
}
  • url hash  通过对请求的url采用算法计算,分配到固定的服务器的一种负载方式
upstream tomcats {
    # url hash $request_uri nginx提供的默认参数
    hash $request_uri;

    server 192.168.1.173:8080;
    server 192.168.1.174:8080;
    server 192.168.1.175:8080;
}
  •  least_conn 最小连接数分配,当前服务器使用中,使用时连接数最小的会被优先分配
upstream tomcats {

    # 最少连接数
    least_conn

    server 192.168.1.173:8080;
    server 192.168.1.174:8080;
    server 192.168.1.175:8080;
}
  • 跨域支持(cros.conf)
#允许跨域请求的域,*代表所有
add_header 'Access-Control-Allow-Origin' *;
#允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
#允许请求的方法,比如 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Methods' *;
#允许请求的header
add_header 'Access-Control-Allow-Headers' *;
  • 测试

nginx怎么搭建集群_linux

nginx怎么搭建集群_服务器_02

nginx怎么搭建集群_服务器_03