ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


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


  ПРОГРАММЫ 



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












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

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

[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.