基本上我有一个 API 农场
192.168.1.1, 192.168.1.2, 192.168.1.3
但是端点有不同的文件夹结构(第三方,我无法修改!)
所以基本上我想要一个像这样的 nginx 配置
upsteam api_servers{
server 192.168.1.1/api/;
server 192.168.1.2/myApp/api/;
server 192.168.1.3/;
}
server{
listen 80;
location / {
proxy_pass http://api_servers;
}
}
但是您不能在上游服务器中拥有路径。我想我必须重写这些?我知道如何对传入请求进行重写,但不确定如何重写它不同地当它到达每个后端服务器时。
提前谢谢了!!
答案1
有一个解决方法。这个想法是制作一个代理人每个上游的服务器块。
upsteam api_servers {
server 127.0.1.1;
server 127.0.1.2;
server 192.168.1.3;
}
server {
listen 127.0.1.1;
location / {
proxy_pass http://192.168.1.1/api/;
}
}
server {
listen 127.0.1.2;
location / {
proxy_pass http://192.168.1.2/myApp/api/;
}
}
server {
listen 80;
location / {
proxy_pass http://api_servers;
}
}