如何解决nginx位置块重定向到默认端口而不是自定义端口
以下是我的Nginx配置。 Tomcat在8081端口上运行,我正在通过8080端口上的nginx访问它。
在网络浏览器中,导航至:
-
myip:8080
正确地将我带到ui1页面。太好了! -
myip:8080/ui1
,nginx执行301重定向到myip:80/ui1
,导致404未找到错误。 不好! -
myip:8080/ui1/
,正确地将我带到ui1页面。太好了!
如何使:8080/ui1
页能够转到正确的位置,在正确的端口8080而不是端口80上?
我尝试使用port_in_redirect off;
指令,但是没有成功。
upstream webapp {
ip_hash;
server 10.20.20.159:8081;
}
server {
listen 8080 default_server;
listen [::]:8080 default_server;
client_max_body_size 50G;
location / {
root /var/www/ui1;
try_files $uri $uri.html $uri/ @webapp;
}
location @webapp {
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://webapp;
}
location /ui1 {
alias /var/www/ui1;
}
location /ui2 {
alias /var/www/ui2name;
}
}
更多情况下,当我尝试进入ui2页面时会看到相同的行为,这是我最初发现此问题的方式。
上游web应用程序不一定位于同一台服务器上,但是对于本例而言,这就是为什么我将8081用于tomcat的原因。
由于URL地址与文件系统中的/ var / www /位置不匹配,因此我想保留位置块的使用。由于安全和隐私问题,我已对代码进行了一些修改,以不显示那些文件路径。我愿意使用root指令,但是我不确定如何使用其他命名的文件路径。
最后,我在端口80上运行了另一个服务,因此我不能将该端口用于nginx(它基本上必须是8080)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。