Re: nginx rewrite
Andrey Melnikoff пишет: Игорь Чумак ichumak2...@gmail.com wrote: Andrey Melnikoff пишет: Игорь Чумак ichumak2...@gmail.com wrote: Добрый день! [...] Нет ли способа на лету (средствами nginx естественно) перекодировать ответ сервера? из чего в что ? Сорри, неясно выразился. Пример: nginx получил запрос: http://nginx_ip/wiki//test.php Передал его на backend http://192.168.0.251/ а зачем он его туда направил ? Есле тебе надо /wiki/ - то и делай location /wiki/ и отправляй в http://192.168.0.251/wiki/ Это понятно. Но бывают сайты, которые не хотят жить в подкаталоге. Проблема в том, что backend видит в запросе _SERVER[SCRIPT_NAME]/test.php _SERVER[PHP_SELF]/test.php куда передали - так и видит. Тебе никто не мешает написать так: # proxy_pass http://$host$uri$is_args$args; proxy_pass http://192.168.0.251$uri$is_args$args; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP$remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; Соответственно, если backend формирует какие-то абсолютные ссылки в своем ответе (картинки в выводе phpinfo() например имеют вид img border=0 src=/test.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42) - ссылки получаются неработоспособными. http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#try_files если хочется чегото странного. Не надо странного ;) Проще разбросать сайты по virtualhost'ам. -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4bf62be7.3050...@gmail.com
nginx rewrite
Добрый день! Что-то я туплю :( [nginx.conf] location /wiki { proxy_pass http://192.168.0.251/; } Пытаюсь сделать такое: Есть сервер (192.168.0.251), в корне которого лежит контент (пусть будет test.php). nginx должен запрос вида http://IP/wiki/test.php передавать на этот сервер. Запрос обрабатывается, но сервер то уверен, что у него спросили /test.php; в ответ формирует страничку, где все ссылки имеют абсолютные адреса, в которых нет подкаталога /wiki. Нет ли способа на лету (средствами nginx естественно) перекодировать ответ сервера? location /wiki { proxy_pass http://192.168.0.251/wiki/; } - такой вариант работает, но как быть с сайтом, который не умеет работать в поддиректории? -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4bf50c08.1020...@gmail.com
Re: nginx rewrite
Игорь Чумак ichumak2...@gmail.com wrote: Добрый день! [...] Нет ли способа на лету (средствами nginx естественно) перекодировать ответ сервера? из чего в что ? location /wiki { proxy_pass http://192.168.0.251/wiki/; } - такой вариант работает, но как быть с сайтом, который не умеет работать в поддиректории? location / { proxy_pass http://192.168.0.251/; } добавить ? -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/9frfc7-fms@kenga.kmv.ru
Re: nginx rewrite
Andrey Melnikoff пишет: Игорь Чумак ichumak2...@gmail.com wrote: Добрый день! [...] Нет ли способа на лету (средствами nginx естественно) перекодировать ответ сервера? из чего в что ? ;) Сорри, неясно выразился. Пример: nginx получил запрос: http://nginx_ip/wiki//test.php Передал его на backend http://192.168.0.251/ Проблема в том, что backend видит в запросе _SERVER[SCRIPT_NAME]/test.php _SERVER[PHP_SELF]/test.php Соответственно, если backend формирует какие-то абсолютные ссылки в своем ответе (картинки в выводе phpinfo() например имеют вид img border=0 src=/test.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42) - ссылки получаются неработоспособными. location /wiki { proxy_pass http://192.168.0.251/wiki/; } - такой вариант работает, но как быть с сайтом, который не умеет работать в поддиректории? location / { proxy_pass http://192.168.0.251/; } добавить ? Т.е. не запихивать в поддиректорию ;) Не катит. А если таких сайтов 2? -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4bf552ab.2090...@gmail.com
Re: nginx rewrite
Игорь Чумак ichumak2...@gmail.com wrote: Andrey Melnikoff пишет: Игорь Чумак ichumak2...@gmail.com wrote: Добрый день! [...] Нет ли способа на лету (средствами nginx естественно) перекодировать ответ сервера? из чего в что ? Сорри, неясно выразился. Пример: nginx получил запрос: http://nginx_ip/wiki//test.php Передал его на backend http://192.168.0.251/ а зачем он его туда направил ? Есле тебе надо /wiki/ - то и делай location /wiki/ и отправляй в http://192.168.0.251/wiki/ Проблема в том, что backend видит в запросе _SERVER[SCRIPT_NAME]/test.php _SERVER[PHP_SELF]/test.php куда передали - так и видит. Тебе никто не мешает написать так: # proxy_pass http://$host$uri$is_args$args; proxy_pass http://192.168.0.251$uri$is_args$args; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP$remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; Соответственно, если backend формирует какие-то абсолютные ссылки в своем ответе (картинки в выводе phpinfo() например имеют вид img border=0 src=/test.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42) - ссылки получаются неработоспособными. http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#try_files если хочется чегото странного. -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/nn1gc7-n48@kenga.kmv.ru