nginx常见的反向代理源服务器的时候,
1.这个是最常见的过滤URL带端口的情况,这种方式一般也解决了大部分问题
sub_filter ":8088" "";
sub_filter_once off;
但源服务器的程序有些功能会生成重定向的URL,有些程序框架可能会识别到通信端口来生成重定向URL,而不是通过请求头来生成,会生成带NGINX通信端口的URL。
常见的登录验证跳转到登录页面
2.就可直接配置location 指定URL 跳转
location ~* ^/(user/default\.aspx|abc/xxxx\.php)$ {
#这里使用正则表达式,匹配多个需要重定向到登录页面的路径
# 强制重定向到登录页面
return 302 http://$host/login.aspx;
}
3.也可尝试增加下面2个配置:
但很多程序框架可能不支持识别X-Forwarded,没效果。
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port 80; # 强制指定为80端口
4.直接把特定带端口号的URL,使用重写规则到没端口号的URL
if ($http_host = "abc.com:8080") {
rewrite ^/login.aspx$ http://www.abc.com/login.php permanent;
}