nginx端口映射后,跳转带的是内网端口而不是外网端口

要把192.168.1.10:90进行外网映射10.1.1.10:91,但是登录跳转后,地址却变成了10.1.1.10:90

解决方法:这是因为nginx做了端口重定向,只需要在nginx.conf配置文件的http或server中添加:port_in_redirect off;并且指定跳转的外网端口,就可以解决这个问题,如下所示:

server模块或location模块配置

server模块配置

server {
   listen     90;
   charset UTF-8;
   server_name 192.168.1.10;
   port_in_redirect off;
   proxy_set_header   Host    $host:380;
   location / {
        proxy_pass http://192.168.1.10:81/;
        proxy_set_header   Remote_Addr    $remote_addr;
        proxy_set_header   X-Real-IP    $remote_addr;
        proxy_set_header   X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-For    $remote_addr;
        index index;
        }
}

 

location模块配置

server {
   listen     90;
   charset UTF-8;
   server_name 192.168.1.10;
   location / {
        proxy_pass http://192.168.1.10:81/;
        port_in_redirect off;
        proxy_set_header   Host    $host:380;
        proxy_set_header   Remote_Addr    $remote_addr;
        proxy_set_header   X-Real-IP    $remote_addr;
        proxy_set_header   X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-For    $remote_addr;
        index index;

        }
}

 重启nginx即可

posted @ 2026-03-02 16:46  阿尔法哲  阅读(38)  评论(0)    收藏  举报