NginX代理传递无限循环

时间:2016-09-01 10:36:07

标签: nginx

任何人都可以解释为什么删除最后一个斜杠产生无限循环?在Chrome浏览器中,它会生成http://localhost//

location / {
    proxy_pass http://localhost:8080/tracker; // infinite loop
}

location / {
    proxy_pass http://localhost:8080/tracker/; // not infinite loop
}

但是如果我在location指令中添加后缀,那很好。

location /tracker {
    proxy_pass http://localhost:8080/tracker; // not infinite loop
}

location /tracker {
    proxy_pass http://localhost:8080/tracker/; // not infinite loop
}

2 个答案:

答案 0 :(得分:3)

案例:

location / {
    proxy_pass http://localhost:8080/tracker;
}
如果/tracker是上游目录(例如),

将产生302重定向循环。上游可能会发出302重定向以追加/proxy_pass会再次剥离。

您正在对URI进行别名 - 因此位置和目标都应以/结尾,或者两者都不应以/结尾。

答案 1 :(得分:1)

检查你的“跟踪器应用程序”是否有斜杠,大多数框架都有像SEO这样的功能。

无论如何,您可以使用访问日志跟踪它。