我有这个REST APIurl:
http://localhost:4000/api/v2/stocks/accounts/1162/tradings
我想要它到proxy_pass URL:
http://localhost:4001/api/v2/stocks/accounts/1162/tradings
其中1162是可以是其他值的URL参数。
我有以下几点:
location ^~ /api/v2/stocks/accounts/([^/]+)/tradings { proxy_pass http://localhost:4001/api/v2/stocks/accounts/$1/tradings; }
但它不起作用(404 Not Found),我用Googlesearch了类似的问题,但帮助不大:
像这样: 获取参数Nginx和proxy_pass的path或这一个: 位置正则expression式和nginxredirect的麻烦 。
有什么办法来实现我想要的,使用nginx?
在此先感谢您的帮助。
添加:
我还添加了参数capture:
location ~ /api/v2/stocks/accounts/([^/]+)/tradings/(.*) { proxy_pass http://localhost:4001/api/v2/stocks/accounts/$1/tradings/$2$is_args$args; }
你可以像这样做。 不' ^〜 '
location ~ /api/v2/stocks/accounts/([^/]+)/tradings { proxy_pass http://localhost:4001/api/v2/stocks/accounts/$1/tradings; }
正如nginx.org所描述的那样 。
^〜通常是匹配目录 ,如下所示:
location ^~ /dir/ { # some actions }