Nginx Apache mod_rpaf
Установка связки nginx, Apache и mod_rpaf.
- Ubuntu
Установка nginx 7.65 в Ubuntu 10.04.3 LTS
# aptitude install nginx
Для установки более свежей версии (1.0.5 stable) нужно подключить репозиторий Nginx PPA на Launchpad.
# aptitude install python-software-properties # add-apt-repository ppa:nginx/stable или add-apt-repository ppa:nginx/development если нужно установить последнюю нестабильную версию # aptitude update # aptitude install nginx
- Debian можно подключить для Debian Squeeze порты от Wheezy и добавить сторонний репозиторий
# nginx deb http://mirror.yandex.ru/debian/ wheezy main deb-src http://mirror.yandex.ru/debian/ wheezy main
# nginx -V nginx version: nginx/1.1.11 built by gcc 4.6.2 (Debian 4.6.2-4)
или же можно добавить репозиторий The repository for Debian-based LAMP servers и ключ к нему
deb http://packages.dotdeb.org squeeze all deb-src http://packages.dotdeb.org squeeze all # wget -q -O - http://www.dotdeb.org/dotdeb.gpg | apt-key add -
mod_rpaf: cвязка Apache и Nginx
Для связки Apache и nginx существует несколько вариантов:
- при помощи mod_rpaf предварительно установив его из исходных кодов или из репозитория
# aptitude install libapache2-mod-rpaf
- при помощи модуля mod_extract_forwarded обеспечивающего функциональность аналогичную mod_rpaf.
Теория: запрос клиента приходит на nginx, nginx запрашивает Apache, при этом HTTP- заголовок HOST теряется, а адрес клиента REMOTE_ADDR Apache определит как 127.0.0.1. Заголовок HOST подставим в настройках nginx
# nano /etc/nginx/proxy_params proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Но REMOTE_ADDR Apache определяет сам. Решается эта проблема при помощи mod_rpaf. Работает он следующим образом: Nginx знает IP клиента и добавляет некий HTTP-заголовок (например X-Real-IP), в который прописывает этот IP. mod_rpaf получает этот заголовок и прописывает его содержимое в переменную REMOTE_ADDR Apache. Таким образом, php-скрипты, выполняемые Apache будут видеть реальный IP клиента.
Для связки Apache и nginx нужен установленный модуль mod_rpaf не ниже версии 0.6. Установка из исходных кодов описана в mod_rpaf.
aptitude install libapache2-mod-rpaf
Настроим mod_rpaf:
# nano /etc/apache2/mods-enabled/rpaf.load LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf.so
В конфигурационный файл mod_rpaf нужно изменения(добавить) параметры.
# nano /etc/apache2/mods-enabled/rpaf.conf # Включить модуль RPAFenable On # Исправить поле HOST RPAFsethostname Off # Список IP front-end (один или больше) RPAFproxy_ips 127.0.0.1 Your_Real_IP # Какое поле заголовка брать для замены X-Real-IP или X-Forwarded-For RPAFheader X-Forwarded-For
- Пример простого виртуального хоста, который только перенаправляет запросы Apache
server { listen 80; server_name YourNameDomen.com; error_log /var/log/nginx/error.log info; access_log /var/log/nginx/access.log; location / { proxy_pass http://127.0.0.1:81/; } }
Крупнейшая в Европе школа английского языка
Промокоды, акции и подарки, чтобы Ваше обучение было не только интересным, но и выгодным. Закажите пробный урок уже сейчас!
skyeng.ru
Онлайн школа английского языка
Английский по скайпу от 680р за урок, без заучивания правил. Эффективно! Удобно! Выгодно! Начните обучение прямо сейчас.
melene.ru
Школа английского языка по Skype
Персональные занятия по разумным ценам. Бесплатные ресурсы для студентов: разговорные клубы, блог, вебинары, книги, тест на определение уровня английского. Пробный урок бесплатно!
englex.ru