我正在运行nodeJS脚本。
localhost:9001
/v{{ version }}/{{ lang }}/...
的形式接受请求例如:
domain.com/api/v1/en/news
domain.com/api/v2/fr/news
domain.com/api/v3/en/news
直到现在我有了这是nginx
location /api/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:9001/;
}
一切正常。
我现在的目标是在localhost:9002
上运行其他(相同)脚本,该脚本将接受v4
请求。 v3
v2
,v1
和localhost:9001
进行“处理”
所以我希望将请求domain.com/api/v4/en/news
路由到localhost:9002
我将此当前规则置于之上
location ~* /api/v4/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:9002/v4/$1;
}
location /api/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:9001/;
}
请求/v3/..
被路由到localhost:9001
(如预期的那样),但是/v4/..
返回502
。
有指针吗?
答案 0 :(得分:1)
location /api/v4/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:9002/v4/;
}
location /api/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:9001/;
}