Я использую Apache с mod_proxy_html, и пытаюсь добиться чего-то подобного с NGINX. Конкретный вариант использования заключается в том, что у меня есть пользовательский интерфейс администратора, запущенный в Tomcat на порту 8080 на сервере в корневом контексте:
http://localhost:8080/
Мне нужно обработать это на порту 80, но у меня есть другие контексты на сервере NGINX, работающем на этом хосте, поэтому вы хотите попробовать и получить доступ к этому по адресу:
http://localhost:80/admin/
Я надеялся, что следующий суперпростой серверный блок сделает это, но это не совсем так:
server {
listen 80;
server_name screenly.local.akana.com;
location /admin/ {
proxy_pass http://localhost:8080/;
}
}
Проблема заключается в том, что возвращаемое содержимое (html) содержит URL-адреса для скриптов и информации о стиле, к которым все доступны в корневом контексте, поэтому мне нужно переписать эти URL-адреса, чтобы начать с/admin/вместо/.
Как это сделать в NGINX?