
Я хотел бы, чтобы 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_module
Редактировать:
После вашего комментария ответ просто перевернулся:
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/;