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

Re: nginx && rewrite



Andrey Melnikoff пишет:
Игорь Чумак <ichumak2008@gmail.com> wrote:
Andrey Melnikoff пишет:
Игорь Чумак <ichumak2008@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'ам.


Reply to: