Несколько непонятностей по nginx

Max N kts at ad0.ru
Tue Apr 10 22:44:38 MSD 2007


Здравствуй, all.

Решил сделать nginx в качестве фронтенда, но посколько разрабатываю
этот замысел не так давно, возникло несколько вопросов, на которые
прямых ответов не нашел.

Как я уже понял, блока if в другом блоке if быть не может, а можно в
самом if проверять несколько условий (&& или ||)? Или может есть
какие-нибудь другие пути проверки двух условий? Например для того,
чтобы выдать клиенту 403, если у него неправильный реферер и адрес
неподходящий...

Есть какая-нибудь возможность в процессе проксировании запроса
выполнять какой-либо скрипт, а по результату его выполнения, решать,
отдавать запрос на обработку бэкенду или вернуть какой-нибудь статус?
Тут очень даже кстати был бы встроенный perl с возможностью
назначения хэндлеров в location. Но поскольку модуль -
экспериментальный, а в офф.доках не совсем понятно написано насчет
пересборки самого перла (с последующей пересборкой бинарных модулей),
то на http_perl_module не особо надеюсь...
А проксировать сразу на два адреса можно? Напр., одновременно апачу и
какому-нибудь демону на 9999-м порту?

Не совсем понятно насчет location / {}. Это location, ммм, по
умолчанию (т.е. подходит для всех запросов) или нет? Ведь, по логике
вещей, эта конструкция эквивалентна location = '/', т.е. применима для
запросов "GET /".

В некоторых статьях (в частности, на blog.kovyrin.net) в примерах
конфига вижу строчку (настройка в кач-ве фронтенда)
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
либо то же самое, но закомментаренное.

А в чем сакральный смысл установки HTTP_X_FORWARDED_FOR?
nginx при обработке запроса сбрасывает существующий заголовок, если он
есть? Или это для каких-то других целей?


На этом, пожалуй, закруглюсь. Заранее спасибо за просветительство.


-- 
С уважением,
 Max






More information about the nginx-ru mailing list