我希望 nginx 将所有对/images
、/css
、的请求重定向(重写?)/whatever
到http://frontend/site/images
或http://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/;