REQUEST_URI в проксируемом запросе
Alex Belyansky
alex.barut на gmail.com
Пн Июл 9 11:34:16 UTC 2012
Добрый день!
Хотелось бы поинтересоваться по поводу поведения Nginx, при запросе
корневой директории.
Конфиг виртуального хоста примерно такой:
server {
listen 127.0.0.1:80;
server_name test.ru ;
root /home/test/www/test.ru;
index index.php index.html;
location ~* \.php {
proxy_pass http://upstream;
}
location / {
try_files $uri $uri/ @upstream;
error_page 404 = @upstream;
error_page 403 = @upstream;
}
location @upstream {
proxy_pass http://upstream;
}
}
Версия Nginx:
1-ый сервер
nginx: nginx version: nginx/1.0.0
nginx: built by gcc 4.2.1 20070719 [FreeBSD]
nginx: TLS SNI support enabled
2-ой сервер
nginx version: nginx/1.3.2
built by gcc 4.4.5 (Debian 4.4.5-8)
TLS SNI support enabled
Посылаем запрос к серверу:
GET / HTTP/1.1
Так вот суть вопроса в чем. Для первого сервера значение в PHP:
_SERVER["REQUEST_URI"] = /
А для второго:
_SERVER["REQUEST_URI"] = /index.php
Т.е. по сути получается что на первом сервере пересылается исходный
запрос на backend, а на втором уже идет запрос к '/index.php'. На втором
сервере пришлось убрать index.php из директивы index, чтобы на backend
приходил исходный запрос.
Меня интересует нормально ли такое поведение или это какой-то глюк, или
мои кривые руки?
Подробная информация о списке рассылки nginx-ru