背景
业务部署于Linux虚拟机中,域名解析到公网ip,公网ip的非标准端口映射虚机的标准端口。由于种种原因无法使用公网标准端口(80、443),只能使用非标准端口,公网端口8050到虚机80、公网端口8051到虚机443。
问题复现
虚机内部通过Nginx当做静态资源服务器,监听80、443端口,而在虚机外层还有一个端口转发,但这个端口转发使用的并不是80,导致业务系统登录后重定向地址并没有加上8050端口,而是继续使用了默认的80端口导致了问题的出现。
问题解决
- 创建
proxy_params
文件
nginx/conf目录下创建 proxy_params
文件,写入如下内容。
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
- 修改
nginx.conf
配置
nginx.conf
配置server
下的location
引入 proxy_params
文件,nginx重新加载配置使其生效。文章来源:https://www.toymoban.com/news/detail-563154.html
location /test/ {
proxy_pass http://localhost:8080/test/;
include proxy_params;
}
此处test为我虚机上的tomcat8080端口下部署的项目名称。文章来源地址https://www.toymoban.com/news/detail-563154.html
到了这里,关于Nginx处理302重定向端口丢失问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!