今天,配置nginx反向代理mongrel时遇到一个问题,当设置nginx监听80端口时转发请求没有问题,但一旦设置了其他端口,就一直跳转不正常,刚开始以为是rewrite的问题,最后才发现是nginx端口丢失导致。这里给出一个简短的解决方案,修改Nginx的配置文件:
server {
listen 8888;
server_name localhost;
location / {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
问题产生的原因是: Nginx没有正确的吧端口信息传送到后端,没能正确的配置nginx。
proxy_set_header Host $host:$server_port; 这一行是关键。