我有用于提供静态文件的 nginx 后端。Nginx 在非标准端口(例如 8080)上运行。它可通过端口 80 上的反向代理公开访问。
大部分情况下,设置都运行正常。但是,如果对目录发出请求,nginx 将返回 301 重定向,并将端口设置为 8080。
我发现的所有问题都是关于 nginx 作为反向代理而不是实际服务器。任何帮助都将不胜感激!
作为此问题的一个例子,URLhttp://example.com/dir/
工作正常。但是留下尾部斜杠http://example.com/dir
会导致浏览器重定向到http://example.com:8080/dir
。
答案1
有port_in_redirect
指令。您应该将其关闭。
server {
...
port_in_redirect off;
...
}
此外,最好使用curl
或等控制台工具测试重定向(尤其是永久重定向) wget
,因为您的浏览器可能已经缓存了重定向,并且只会使用它而不会实际访问服务器(这是永久重定向的主要原因)。