![Nginx 在访问不带斜线的 URL 时重定向到端口 8080](https://linux22.com/image/572916/Nginx%20%E5%9C%A8%E8%AE%BF%E9%97%AE%E4%B8%8D%E5%B8%A6%E6%96%9C%E7%BA%BF%E7%9A%84%20URL%20%E6%97%B6%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E7%AB%AF%E5%8F%A3%208080%20.png)
访问时: http://example.com/somefolder-->http://example.com:8080/somefolder
我尝试过这个:
http {
port_in_redirect off;
有任何想法吗?
答案1
我刚刚遇到了同样的问题并且port_in_redirect off;
实际上对我来说是有效的,只要确保在server {}
块内使用它即可。
server {
listen 8080;
server_name example.com;
port_in_redirect off;
autoindex on;
location / {
root /var/www/example.com;
index index.html;
}
}
答案2
这应该可以解决问题。在指令proxy_redirect
之后立即添加指令proxy_pass
proxy_redirect http://example.com:8080/ http://example.com/;
答案3
如果有人在 Apache 后面设置 nginx 反向代理时仍然遇到此问题,您可以尝试 ff:
地点 / { 代理重定向关闭; proxy_set_header Host $host:$server_port; #<--这个解决了我的问题 proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-真实IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 代理密码http://127.0.0.1:8083; }
我的设置是让 Apache 监听 127.0.0.1:8083 并让 nginx 代理请求到它。
答案4
我认为这个简单的例子就足够了:
location = /somefolder {
return 302 http://$host:8080/somefolder;
}