[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

nginx proxy



Собственно есть задача - настроить в 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


Reply to: