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

RaPaMaN rapaman at virthost.net
Thu Dec 23 01:41:13 MSK 2004


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

Смотрел я долго на 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








More information about the nginx-ru mailing list