ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

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

[apache-talk] [HOW-TO] real IP address for apache 2.0.x (backend) and nginx




Доброго времени суток,

Смотрел я долго на lighttpd и выбрал nginx, хоть и нужен SSL тоже :)
(стабильный, но ssl в nginx еще не пробовал).

И возникла единственная проблема на Апаче 2.0.х - реальный IP адрес на
backend сервере.
Для апача 1.3.х - такой модуль есть, который написал Игорь Сысоев.

После раздумий и чтения документации по mod_headers и остальной
компании, понял, что это не поможет.
Тогда я зарылся в гугль и после 20 минут лирического диалога с полем
поиска нашел нужный модуль, им оказался mod_rpaf

Лежит он здесь - http://stderr.net/apache/rpaf/

Я его скачал и поставил, а ставится он очень просто с помощью apxs:

apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

После этого добавляем его строкой в апач:

LoadModule rpaf_module modules/mod_rpaf-2.0.so

А директивы его описаны в README файле, который идет к нему. Их всего три:
- RPAFEnable - включить модуль
- RPAFproxy_ips - IP адрес(а) фронт-энд сервера(-ов)
- RPAFsethostname - доводит до ума поле HOST, как на фронтэнде.

Можете создать просто mod_rpaf.conf и положить его в conf.d/..., текст
следующий:

---------------------------- mod_rpaf.conf ----------
#
LoadModule rpaf_module modules/mod_rpaf-2.0.so
#Configuration Directives:
RPAFenable On
# Enable reverse proxy add forward
RPAFproxy_ips YOUR_PROXY_SERVER IP_LIST_OR_ONE_IP
# which ips are forwarding requests to us
#RPAFsethostname On
# let rpaf update vhost settings
# allows to have the same hostnames as in the "real"
# configuration for the forwarding Apache

------------------------------------------------------

RPAFproxy_ips - тут список IP вашего фронтенда или фронендов, пример:
RPAFproxy_ips 127.0.0.1 192.168.1.45 182.142.35.24

Далее добавляем в конфигурацию nginx (раздел server), следующую строчку:

proxy_add_x_forwarded_for  on;

Теперь nginx передает бэкэнду IP клиента в поле: X-Forwarded-For, а на другом конце его подхватит mod_rpaf и сделает свое грязное дело ;) :)

Теперь оба сервера перезапускаем любым способом, кому как нравится. :)

И Voila, как говорят знакомые бразильцы :)

Все это проделано на Fedora Core 2 и работает.

С Уважением,
Дмитрий.

-
Owner and Founder of Remote Admin Service
http://remote-admin-service.encrypted-life.net



 




Copyright © Lexa Software, 1996-2009.