Собственно есть задача - настроить в nginx проксирование к нескольким серверам сразу. Задача казалось тривиальной, т.к. я ее уже не раз выполнял, но в более простом виде - как frontend к apache. Суть задачи: требуется, чтобы по адресу server_name_1:80/path1/ открывался server_name_2:8082/. Это в самом обобщенном виде, в идеале так вообще server_name_2:8082/path2/. Сам по себе сервер server_name_2:8082 превосходно открывается и работает. Возможности как-либо изменить его работу или html, которыми он "плюется" нет! это очень важное дополнение. Так вот, если nginx проксирует так:
location / {
proxy_pass http://server_name_2:8082;
}
то все работает, если же сделать как требуется в задаче:
location /path1 {
proxy_pass http://server_name_2:8082;
}
то ничего не работает, ничего не отображается в браузере.
в логах nginx при этом везде 404 на статику: картинки, стили, скрипты.
Потому что все они ищутся в корне, а не в /path1. Т.е. индексная
страница содержит содержимое, которое ищется в корне. Естественно, что
корень nginx не проксирует. Можно ли как то исправить это, чтоб ответ от
proxy_pass nginx обрабатывал перед выдачей пользователю? чтобы в html
коде /js/ изменялось на /path1/js. Это к примеру.
Пробовал следующие конструкции в различной комбинации:
rewrite /deluge/(.*) /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
P.S. Нагуглил аналогичные проблемы у одного из участников habrahabr, но
там топикстартер так и не дождался ответа.
signature.asc
Description: This is a digitally signed message part

