我对 nginx 1.4.1 使用以下配置:
服务器 { 听8000; server_name 正确的.name.gr; 位置/测试/注册{ proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1; } }
我想要做的是当用户访问时,http://correct.name.gr:8000/test/register/
他们应该被代理到在端口 80 上运行的 apache。
当我访问时,http://correct.name.gr:8000/test/register/
我得到了正确的结果(index.php)。当我访问时,http://correct.name.gr:8000/test/register/asd
我得到了正确的结果(来自 apache 的 404)。当我访问时,http://correct.name.gr:8000/test/asd
我得到了正确的结果(来自 nginx 的 404)。当我访问时,http://correct.name.gr:8000/test/register123
我得到了正确的结果(来自 apache 的 404)。
问题是当我访问http://correct.name.gr:8000/test/register
. 我收到 301 响应并被重定向到http://localhost/test/register/
(注意尾部斜杠,当然还有 'localhost')!!!
我没有对 nginx 进行任何其他配置来放置斜杠或类似的东西。你知道是什么问题吗?我想http://correct.name.gr:8000/test/register
通过代理到 apache 来正常工作(或者如果不可能,至少发出 404 错误而不是重定向到用户的本地主机)。
更新 1:我从另一台计算机上尝试http://correct.name.gr:8000/test/register
,而不是我昨天有不良行为的那台计算机。好吧,它奏效了:我刚收到一个 301 响应,指出我是正确的http://correct.name.gr:8000/test/register/
!如何在一台计算机上工作而不是在另一台计算机上工作(我在两台计算机上使用相同的浏览器-Chrome)?我明天再试一次,从第三个开始测试,看看行为。
谢谢 !