nginx基于路径统一匹配(/api/riot/ /api/steam/)
目的
要做的其实是 匹配 /api/riot/... 或 /api/steam/... 这样的路径,然后统一转发。
location
Nginx 里可以用 正则 location 来写,推荐这样:
1 | # 完整转发 |
说明
~表示使用正则匹配^/api/(riot|steam)(/.*)?$/api/riot或/api/steam开头(/.*)?表示后面还可以跟路径(可选)
proxy_pass http://backend$2;$2代表(/.*)?里匹配到的内容,可以把后面的路径原样转发到后端
⚠️ 注意
- 如果后端服务本身就是挂在
/下,而你不想保留/api/riot这些前缀,就需要用 rewrite:
1 | location ~ ^/api/(riot|steam)(/.*)?$ { |
这样 /api/riot/user/123 → http://backend/user/123