我想知道如何定义上游目录路径中的服务器值而不是子域或端口......
例如这不起作用:
upstream backend {
server backend1.example.com/**dir/** ;
server backend2.example.com:8080;
}
server {
location / {
proxy_pass http://backend;
}
}
有人知道我该怎么做吗?
此致。
答案1
一般情况下 Nginx 不会修改请求参数,包括get
字符串。如果想在发往后端之前修改,则需要使用 rewrite。
例如:
server {
location / {
rewrite ^(.*)$ /somedir/$1 break;
proxy_pass http://backend;
}
这会添加/somedir/
到该位置的每个请求中。浏览器中的实际 URL 不会被修改,只有发送到后端的请求才会被修改。