nginx 负载均衡
第一步,在nginx 配置 nginx.conf 的 http 指令中创建upstream
upstream backend_https {
server 10.2.20.80:443 weight=1 max_fails=2 fail_timeout=10s;
server 10.2.20.69:443 weight=1 max_fails=2 fail_timeout=10s backup;
sticky;
}
upstream backend_https_h5 {
server 10.1.20.69:3000 weight=1 max_fails=2 fail_timeout=10s;
server 10.1.20.80:3000 weight=1 max_fails=2 fail_timeout=10s backup;
sticky;
}
第二步,修改对应的网站设置,做负载指向
location ~/
{
proxy_pass https://backend_https_h5;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
include proxy.conf;
}
第三步,重启 nginx
nginx -s reload
负载均衡注意session问题 及程序获取真实IP问题。
真实IP的传递可以使用 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
文件 proxy.conf
proxy_headers_hash_max_size 51200;
proxy_headers_hash_bucket_size 6400;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-For $upstream_addr;
proxy_set_header Connection "";
proxy_http_version 1.1;
client_max_body_size 30m;
client_body_buffer_size 128k;
#proxy_connect_timeout 3;
#proxy_send_timeout 10;
#proxy_read_timeout 10;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 32k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_next_upstream error timeout http_500 http_502 http_503 http_504;