折雨的天空
nginx反向代理获取IP的问题
2019-11-25 我好笨


以前的文章有设置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;



这几句代码,就可以获取到IP了,而不是upstream里的名字,完整代码如下:







#先在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;
}
}



参照:https://blog.csdn.net/qq_41049126/article/details/96978519

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容