反向代理子位置

反向代理子位置

我希望 nginx 将所有对/images/css、的请求重定向(重写?)/whateverhttp://frontend/site/imageshttp://frontend/site/css,因为http://frontend/site正确映射到 ,backend:port但当然它总是寻找/whatever而不是http://frontend/site/whatever

有没有办法告诉 nginx 反向代理动态调整 URL?无需创建数百/location条指令

谢谢

答案1

如果site是静态的:

rewrite ^(.*)$ /site/$1 break;

如果site是主机名/域:

rewrite ^(.*)$ /$host$1 break;

rewrite也可以在server块中使用:ngx_http_rewrite_模块



编辑:
在您的评论之后,答案就被逆转了:

location /nasweb/ {
 rewrite ^/nasweb(/.*)$ $1 break;
 proxy_pass http://your-internal-nas;
}

这将允许您打开https://your-external-domain.com/nasweb/并将您的请求转发给http://your-internal-nas/

编辑:
为了防止错误重定向,请使用以下命令:

proxy_redirect / /nasweb/;

相关内容