Axell 11.06.2011 23:29

Есть вопрос!nginx proxy_pass. Вопрос знатокам.

Всем привет!
Имеется несколько виртуальных серверов с различными сервисами и один из них крутит nginx для разруливания запросов по остальным. Разруливать нужно примерно так:
http://domain.com/wiki -> http://192.168.122.3
http://domain.com/panel -> http://192.168.122.4

192.168.122.0/24 - локальная подсеть между виртуальными серверами.

Казалось бы, всё просто. В конфиге nginx:

location /wiki/ {
proxy_redirect off;
proxy_pass http://192.168.122.3/;
}


Таким образом, на виртуальный хост с вики уходит запрос GET /
На этом хосте крутится апач с единственной целью - отдавать вики. DocumentRoot = /var/www/wiki.
Всё просто замечательно, но для апача вики находится в корне, по этому на странице мы получаем пути к картинкам и прочему /images/foo.gif, а надо бы /wiki/images/foo.gif, т.к. через nginx запросы на эти картинки должны уходить именно путём с /wiki. В противном случае они не попадают под правило /wiki/ и не уходят на нужный апач.

Поддомены использовать не могу, только URL. Вариатны решения:
1. Отдавать в апач запрос с GET /wiki. Но mediawiki такая капризная, что при обращении в /wiki/index.php перенаправляет запрос на /wiki/index.php/Main_Page или что-то ещё в этом роде. В итоге nginx снова получает /wiki, снова передаёт на апач, а там вики снова перенаправляет нас. В итоге редиректы зацикливаются.
2. ???


Вопрос: есть ли разумное решение?) Как бы так извратиться, чтобы апач думал, что он работает не с /, а с /wiki. Или может со стороны nginx это решается... (настройка mod_rewrite с /wiki на / на апаче приводит к тому же эффетку) не могу представить как.


Тэги: apache nginx proxypass proxy_pass
+ 1 -
Похожие Поделиться

Axell 12.06.2011 20:57 #
Решено, блеать! Это стоило мне двух дней жизни. Позже отпишу правильный конфиг :)
mironov_orig 01.08.2011 08:47 #
Уже полтора месяца прошло, а решения всё нет.
cooler 14.06.2011 09:44 #
1
2
3
4
location ~* /wiki/ { 
proxy_redirect off; 
proxy_pass http://192.168.122.3/; 
}

Насколько я помню.