80端口转发,nginx做非80端口转发

nginx可以很方便的配置成反向代理服务器
server {
listen 80;
server_name localhost;
location / {
    proxy_pass http://147.16.24.175:9500;
    proxy_set_header Host $host:80;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Via "nginx";
}
}
但是如果nginx的监听端口不是默认的80端口,改为其他端口如81端口。
后端服务器中request.getServerPort()无法获得正确的端口,返回的仍然是80;
在response.sendRedirect()时,客户端可能无法获得正确的重定向url。
正确的配置方法为
在 $host之后加上端口号,如$host:81
server {
        listen       83;
        server_name  localhost;

        location / {
         proxy_pass 
http://147.16.24.175:9500;
         proxy_set_header   Host             $host:83;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
         proxy_set_header Via    "nginx";

        }
 }

Tags:  80端口被占用 80端口 nginx转发 80端口转发

延伸阅读

最新评论

发表评论