在做nginx正向代理的过程中,我使用的不是80端口,而且80端口目前已经正在使用。代理服务器和目标服务器都是在同一个机器上,配置以后nginx的代理服务器总是自动的跳到80端口的数据,下面是代理段的nginx配置
server { listen 81; server_name localhost; client_max_body_size 100M; proxy_next_upstream error timeout invalid_header; proxy_pass_header server; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host $host; #proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; resolver 19.211.55.145; location / { proxy_pass http://$http_host$request_uri; } }
代理服务器指向的服务端的nginx配置
server { listen 82; server_name localhost; client_max_body_size 100M; proxy_next_upstream error timeout invalid_header; proxy_pass_header server; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host $host; #proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; location / { if ( $remote_addr !~* "^10\.211\.55\.145") { return 403; } root /apps/work/data/test/82/; index index.html index.htm; } }
通过配置发现,proxy_pass_header都指向了本机的host,这里修改了一下代理服务器的配置
server { listen 81; server_name localhost; client_max_body_size 100M; proxy_next_upstream error timeout invalid_header; proxy_pass_header server; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; resolver 19.211.55.145; location / { proxy_pass http://$http_host$request_uri; } }
服务端访问代理不在出现跳转,这里的问题就是nginx中使用变量的问题。去掉nginx的跳转,访问没有问题。
注意:如果你遇到在同一台服务器上部署代理,代理跳转错误,那首先要检查一下代理的nginx配置是否有本地的host变量,这种变量最容易跳转到默认端口。
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏