Nginx代理端口丢失

2024-01-11  本文已影响0人  Sean_w

记一次Nginx端口丢失的两种情况:
一种是监听非默认端口时做反向代理时出现的端口丢失问题,如以下配置

server  {
    listen 8888;
    server_name localhost;
    charset utf-8;
    root /var/lib/nginx;
    location / {
       proxy_pass http://1.2.3.4:8080;
    }
}

这种情况可以通过配置重写请求头中的Host字段

proxy_set_header Host $http_host;

另一种情况是通过NAT做服务暴露,导致的服务端口丢失
配置如下:

server  {
    listen 8888;
    server_name localhost;
    charset utf-8;
    root /var/lib/nginx;
    location / {
       try_files $uri $uri/ /test/index.html;
       index index.html;
    }
}

该问题google出的解决方案为重写URL
配置如下:

if (-d $request_filename) {
   rewrite [^/]$ $scheme://$http_host$uri/;
}
上一篇 下一篇

猜你喜欢

热点阅读