![在 nginx 配置中使用尾部斜杠](https://linux22.com/image/635750/%E5%9C%A8%20nginx%20%E9%85%8D%E7%BD%AE%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%B0%BE%E9%83%A8%E6%96%9C%E6%9D%A0.png)
location /product {
proxy_pass http://10.0.0.25:8080;
}
如果我使用第一个位置描述作为产品文件夹,我应该使用http://mysdomain.com/product/
,但我不能 http://mysdomain.com/product
从浏览器中使用。我的意思是我应该在 URL 末尾使用斜线。我想在两种情况下访问产品文件夹。
这之间有什么区别吗:
location /product/ {
proxy_pass http://10.0.0.25:8080;
}
答案1
/production
这些位置是不同的。例如,第一个位置将匹配,但这可能不是您所期望的。因此,我更喜欢使用带有尾部斜杠的位置。
另请注意:
如果一个地点由以斜杠字符结尾的前缀字符串定义,并且请求由 proxy_pass、fastcgi_pass、uwsgi_pass、scgi_pass 或 memcached_pass 之一处理,然后响应于 URI 等于此字符串但没有尾随斜杠的请求,将返回带有代码 301 的永久重定向到附加了斜杠的请求 URI。
如果你有类似的东西:
location /product/ {
proxy_pass http://backend;
}
并转到http://example.com/product
,nginx 将自动将您重定向到http://example.com/product/
。
即使您不使用上述任何一个指令,您也可以随时手动执行重定向:
location = /product {
rewrite ^ /product/ permanent;
}
或者,如果您不想重定向,您可以使用:
location = /product {
proxy_pass http://backend;
}