我有以下配置。请注意,/images
映射到/app/images
目标服务器,并且/app
保持不变:
location /app {
proxy_pass http://localhost:8080;
}
location /images {
proxy_pass http://localhost:8080/app/images;
}
我想要使用一个location
:
location ~ ^/(app|images) {
rewrite ^/images /app/images last;
proxy_pass http://localhost:8080;
}
但是这会将 302 发送/app/images
到客户端以响应/images
URL。我希望它“内部”执行此操作并将映射到/images
。/app/images
这是如何做到的?
答案1
您需要使用break
,以便修改后的 URI 继续在同一个位置块内处理。例如:
location ~ ^/(app|images) {
rewrite ^/images /app$uri break;
proxy_pass http://localhost:8080;
}
看这个文件了解详情。