前因后果就不说了,就是用到了重定向,然而在项目是使用Nginx的反向代理,然后问题就来了,在访问项目地址的时候,页面报出503 service Unavailable,检查了一下路径,发现路径中端口号没有了,例如122.51.157.193:9099直接就变成了122.51.157.193 , 百思不得其解!
因为种种原因,Nginx并不能监听在80端口,或者外部通过NAT方式将请求丢给Nginx,外部地址并不是标准http(s)端口,此时Nginx并不能美好的处理这些重定向 。发生重定向的时候会丢失端口 。
#反向代理
listen 81 default_server;
set $TOMCAT_HOME /var/lib/tomcat7;
location / {
root $TOMCAT_HOME/webapps/ROOT;
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 访问/data的时候会自动加上/成为/data/
listen 81 default_server;
location /data {
root /var/data;
}
处理
这个很容易搞定,网上流传开来的proxy_set_header对此不起作用 。后来我发现gitlab-ce这个用非标准端口访问是没有问题的,我看了一下gitlab-ce的nginx配置,发现是这么配置的:
proxy_set_header Host $http_host;
我又发现nginx软件包释放出的配置文件(from ppa: NGINX Stable),发现里面其实是带有一个参考文件/etc/nginx/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;
这里面写的也是 proxy_set_header Host $http_host;,于是乎直接include,搞定
location / {
root $TOMCAT_HOME/webapps/ROOT;
proxy_pass http://127.0.0.1:8080/;
include proxy_params;
【js获取302重定向后的地址 nginx302跳转丢端口】}
没这个文件就把这些内容手工敲到location配置段下 。
再细看官方文档 , 其实也提及了:
An unchanged “Host” request header field can be passed like this:
proxy_set_header Host $http_host;
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 泰拉瑞亚妖刀村正获取方法详解
- 让网页自动刷新,轻松获取最新信息
- 解决获取证书私钥容器句柄失败问题的方法
- Java代码实现获取本机电脑IP地址
- Windows 8系统有线网卡自动获取IP地址设置步骤详解
- MySQL如何获取连续日期
- Win10电脑设置指南:获取完成设置的帮助
- 如何取消电脑应用获取通话历史记录
- Windows 11发布会时间及如何获取信息
- LOL中老鼠图奇都铎王朝上山若水皮肤获取方式