location /product { proxy_pass http://10.0.0.25:8080; }
如果我使用我的产品文件夹的第一个位置说明,我应该使用http://mysdomain.com/product/ ,我不能从浏览器使用http://mysdomain.com/product 。 我的意思是我应该使用URL的斜线结束。 我想用两个stuation访问产品文件夹。
这是否有区别:
location /product/ { proxy_pass http://10.0.0.25:8080; }
不,这些是不一样的 – 你将需要使用一个正则expression式的尾部斜杠来匹配两个,即
location ~ /product/?
有关如何匹配整个url的更详细的回复,请参阅此相关答案 。
这些地点是不同的。 第一个匹配/production ,例如,可能不是你所期望的。 所以我更喜欢使用带有斜线的位置。
另外请注意:
如果某个位置由以斜杠字符结尾的前缀string定义,并且请求由proxy_pass,fastcgi_pass,uwsgi_pass,scgi_pass或memcached_pass中的一个进行处理,那么响应于URI等于此string的请求,但没有结尾的斜杠,代码为301的永久性redirect将被返回到所请求的URI,并附有斜线。
如果你有这样的东西:
location /product/ { proxy_pass http://backend; }
并转到http://example.com/product会自动将您redirect到http://example.com/product/ 。
即使你不使用上面的这些指令之一,你也可以随时手动redirect:
location = /product { rewrite ^ /product/ permanent; }
或者,如果你不想redirect,你可以使用:
location = /product { proxy_pass http://backend; }