Apache. Установка mod_rpaf
При реализации балансировки вебсерверов с использованием реверсного прокси(это может быть nginx, apache с mod_proxy или pound, да в общем тут выбор богат и не имеет значения) в логах бекэнда в качестве адреса хоста запрашивающего страницы быдет виден внутренний адрес фронт энда. Это совсем плохо, сразу же теряется статистика посещейний, могут сломаться средства борьбы с брутофорсом и тд и тп.
Что бы избавится от этого, нужно установить и настроить mod_rpaf. Он способен в принятых запросах подменять заголовки, а именно подменять адрес прокси на адрес переданный в заголовке X-Forwarded-For.
Ставится mod_rpaf из портов. Есть 2 версии порта. Для первого апача: /usr/ports/www/mod_rpaf/ и для второго /usr/ports/www/mod_rpaf2/.
Ставить будем для второго, это зависит от того, какой у вас стоит апачь. В последнее время все ставят второй, поскольку первый apache более не развиваетяся. А настройка модуля не зависит от версии.
Итак ставим из портов:
По окончании установки, переходим к настройке.
Инсталятор добавит строку в конфиг, отвечающий за загрузку модуля. Правда строка будет закомментирована и надо будет ее раскоментировать.
Теперь переходим к непосредственной настройке. Настраиваем виртуалхост. Нужно добавить в виртуалхост такие строки:
В настройке указывается в строке RPAFproxy_ips – ip адреса ваших фронтэндов. Указываются через пробел.
RPAFheader – заголовок в котором передается реальный адрес хоста с которого пришел к нам запрос.
После настройки нужно проверить конфиг апача:
И если конфиг насписан правильно, перезапустить его:
Как работает модуль можно с помощью php скрипт с вызовом функции phpinfo() или просто выведя переменную $_SERVER['REMOTE_ADDR'].
Что бы избавится от этого, нужно установить и настроить mod_rpaf. Он способен в принятых запросах подменять заголовки, а именно подменять адрес прокси на адрес переданный в заголовке X-Forwarded-For.
Ставится mod_rpaf из портов. Есть 2 версии порта. Для первого апача: /usr/ports/www/mod_rpaf/ и для второго /usr/ports/www/mod_rpaf2/.
Ставить будем для второго, это зависит от того, какой у вас стоит апачь. В последнее время все ставят второй, поскольку первый apache более не развиваетяся. А настройка модуля не зависит от версии.
Итак ставим из портов:
cd /usr/ports/www/mod_rpaf2/
make install cleanПо окончании установки, переходим к настройке.
Инсталятор добавит строку в конфиг, отвечающий за загрузку модуля. Правда строка будет закомментирована и надо будет ее раскоментировать.
#LoadModule rpaf_module libexec/apache22/mod_rpaf.soТеперь переходим к непосредственной настройке. Настраиваем виртуалхост. Нужно добавить в виртуалхост такие строки:
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 89.252.34.107
RPAFheader X-Forwarded-ForВ настройке указывается в строке RPAFproxy_ips – ip адреса ваших фронтэндов. Указываются через пробел.
RPAFheader – заголовок в котором передается реальный адрес хоста с которого пришел к нам запрос.
После настройки нужно проверить конфиг апача:
apachectl configtestИ если конфиг насписан правильно, перезапустить его:
/usr/local/etc/rc.d/apache22 restartКак работает модуль можно с помощью php скрипт с вызовом функции phpinfo() или просто выведя переменную $_SERVER['REMOTE_ADDR'].
- 0
- 23 мая 2010, 23:01
- Diesel
Комментарии (3)
RSS свернуть / развернуть