1. 有无 / 结尾
在location中匹配的url最后有无/结尾,指的是模糊匹配与精确匹配的问题
在proxy_pass中代理的url最后有无/结尾,指的是在proxy_pass 指定的url后要不要加上location匹配的url的问题
1.1 localtion 加不加 /
location /abc/def
可以匹配/abc/defghi的请求,也可以匹配/abc/def/ghi ……
location /abc/def/
不能匹配/abc/defghi的请求,只能精确匹配 /abc/def/ghi这样的请求
1.2 proxy_pass 加不加/
1 | location /star/ { |
location是什么,nginx 就把location 加在proxy_pass 的 server 后面 。
1 | location /star/ { |
改变location,并不能改变返回的内容,返回的内容始终是http://ent.163.com/ 。
2. 匹配并转发参数
需求是 /api/camps/v1/teacher
-> 其他服务器 /api/v1/teacher
, 并且转发参数
1 | location ~ ^/api/camps/v1/(.*)$ { |
3. 代理相对路径
3.1 完全转发
1 | server { |
http://159.75.75.191/ 此时是完全代理的
3.2 二级转发
1 | server { |
http://159.75.75.191/liuvv/ 此时一些子url 是404, 因为直接打到了 /
路径
3.2.1 方案一
1 | server { |
3.2.1 方案二
1 | server { |