Re: вопрос про proxy_pass и IP адрес клиента в логе

Pavel V. pavel2000 на ngs.ru
Пн Сен 19 02:49:00 UTC 2011


Здравствуйте, Maillist.

Вы писали 18 сентября 2011 г., 23:02:46:

> Здравствуйте  всем.  На одном сервере крутится nginx, который передает
> запросы http в виртуальные машины на том же сервере через proxy_pass. Т.е. есть внешний
> IP адрес сервера, и алиасы для него из сети 192.168.0.0/24, на которых
> "висят" виртуальные машины.
> Когда  просматриваю  лог  обращений http в виртуальных машинах, всегда
> вижу  IP адрес клиента как 192.168.0.10 (т.е. один из алисов
> сервера), а хотелось бы видеть истинный
> IP адрес клиента, пославший http запрос.
> Вот кусок конфига:
...
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Лично я не понимаю, зачем из конфига в конфиг бездумно делают копипаст
этой директивы (X-Forwarded-For) с этими параметрами.
При наличии заголовка X-Real-IP и его корректной обработке,
выставление X-Forwarded-For в $proxy_add_x_forwarded_for как бы даже
несколько вредно, потому что вносит дополнительное значение, которого
клиент не посылал.

> Что не так в моей конфигурации?

В этой конфигурации всё нормально. Но HTTP-сервер на виртуальной
машине должен уметь заголовки X-Real-IP _или_ X-Forwarded-For
корректно обрабатывать. Для apache это делает, например, модуль rpaf.


> Спасибо.



-- 
С уважением,
 Pavel                          mailto:pavel2000 at ngs.ru



Подробная информация о списке рассылки nginx-ru