以前的文章有设置ip_hash的方式,设置后,如果动态调用的server的参数
会获取到代理的名字,而不是服务器IP,经实践,加入:
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
#先在nginx.conf中定义一组upstream
upstream pre-cloud_Backend {
server pre-cloud.website.com:8080;
ip_hash;
check interval=5000 rise=1 fall=3 timeout=30000;
check_http_expect_alive http_2xx http_3xx; #tengine的健康检查模块
}
#conf.d/下定义一个文件
server{
listen 80;
server_name cloud.website.com;
limit_conn perserver 10000;
location / {
proxy_next_upstream error timeout http_503 http_504 http_502;
proxy_connect_timeout 500s;
proxy_read_timeout 500s;
proxy_send_timeout 500s;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://pre-cloud_Backend;
}
}