/api开头的请求代理到http:127.0.0.1/8080/xxxapi下,所以我在nginx中做了如下配置:
location /api {proxy_pass http://127.0.0.1:8080/xxxapi/;}
然后我请求http://127.0.0.1/xxxapi/xxxx直接给我报了404,好家伙,直接给我整蒙了,F12查看请求,发现请求变成了http://127.0.0.1/api//xxxx,于是就有了这篇文章。
废话不多说,为什么会变成这样呢?查阅了nginx官网以及一些其它资料后发现,这是nginx的转发规则导致的,这里以访问http://127.0.0.1/api/abc为例列出一些常见的情形:
| 序号 | location | proxy_pass | 代理url |
|---|---|---|---|
| 1 | /api/ | http://127.0.0.1:8080/ | http://127.0.0.1:8080/abc |
| 2 | /api/ | http://127.0.0.1:8080 | http://127.0.0.1:8080/api/abc |
| 3 | /api/ | http://127.0.0.1:8080/xxxapi/ | http://127.0.0.1:8080/xxxapi/abc |
| 4 | /api/ | http://127.0.0.1:8080/xxxapi | http://127.0.0.1:8080/xxxapiabc |
| 5 | /api | http://127.0.0.1:8080/ | http://127.0.0.1:8080//abc |
| 6 | /api | http://127.0.0.1:8080 | http://127.0.0.1:8080/api/abc |
因此,根据实际情况,一般使用第3种或者第6种写法,特此记录,以供参考!
上一篇:Fabric 基础
下一篇:8c sql手册 五