Nginx 和 Apache 组合时自动设置代理端口

Nginx 和 Apache 组合时自动设置代理端口

我成功地设置了 nginx 和 apache 组合来为 wordpress 博客提供服务本网站。我严格遵循了该网站提供的所有代码,以下是我的博客和子博客的目录结构。

main.com(wordpress)
---/mainBlog(wordpress)

我在浏览(main.com)时没有遇到任何问题,但有时,如果我打电话

http://main.com/mainBlog

浏览器重定向到

http://main.com:8080/mainBlog

并从浏览器中收到“无法连接到服务器”错误。“8080”用作代理端口,nginx 会将所有动态内容流量传输到 Apache。但是如果我输入此http://main.com/mainBlog再次在同一个地址栏中,问题再次消失。对于不知道如何在没有“8080”端口的情况下重新加载页面的用户来说,这会很烦人。

编辑:我刚刚发现,如果我在 URL 末尾留下斜线,就会出现这个问题,但如果我加上斜线,就不会出现任何问题。我可以在哪里定义这个问题?

答案1

这实际上是 Apache(或 PHP)发送重定向,因此您需要在那里修复它,您无法在 Nginx 中更改它,除非您想主动让 nginx 将无尾斜杠重定向到尾斜杠。

rewrite ^(.*[^/])$ $1/ permanent;会做的。

答案2

我在使用 varnish 和 nginx 时遇到了类似的问题(varnish 在端口 80 上代理到 nginx 在 8080 上监听),需要添加“port_in_redirect off;”...server_name_in_redirect 需要保持开启状态,这样 nginx 才知道它正在处理哪个主机。

相关内容