![nginx 上游服务器路径“backend.example.com/serverfiles/”?](https://linux22.com/image/616437/nginx%20%E4%B8%8A%E6%B8%B8%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%B7%AF%E5%BE%84%E2%80%9Cbackend.example.com%2Fserverfiles%2F%E2%80%9D%EF%BC%9F.png)
我想知道如何定义上游目录路径中的服务器值而不是子域或端口......
例如这不起作用:
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 不会被修改,只有发送到后端的请求才会被修改。