记一次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/;
}
网友评论