我目前正在收到这样的发帖请求:
POST /api/x/y HTTP/1.1
带有请求正文:a = x&b = y等
我想通过以下两种方式之一将请求重定向到另一台服务器:
1. GET x.x.x.x:8888/xy/abc?a=x&b=y
2. POST x.x.x.x:8888/xy/abc with body a=x&b=y
我正在尝试以下两个重定向选项:
1.rewrite ^(.*) http://server/api$request_body redirect;
//this is not sending body params
2. return 307 http://server/api?$request_body;
//this is giving me 400
答案 0 :(得分:0)
如果您这样做:
location /api/ {
proxy_pass http://x.x.x.x:8888;
}
然后,对example.com/api/x/y/的请求将被代理到http://x.x.x.x:8888/api/x/y/。
如果您这样做:
location /api/x/y/ {
proxy_pass http://x.x.x.x:8888/xy/abc/;
}
然后,对example.com/api/x/y/的请求将被代理到http://x.x.x.x:8888/xy/abc/。
请求方法将保持不变,除非您告诉Nginx对其进行更改。除非您告诉Nginx传递某些标头,否则不会传递它们。