Собственно есть задача - настроить в 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, но там топикстартер так и не дождался ответа.
Attachment:
signature.asc
Description: This is a digitally signed message part