Различия

Показаны различия между двумя версиями страницы.


nginx_apache_mod_rpaf [2025/07/06 12:39] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Связка Nginx Apache mod_remoteip или mod_rpaf ======
 +{{htmlmetatags>
 +metatag-description=(Настройка связки Apache и Nginx при помощи mod_rpaf используется для снижения общей нагрузки на веб-сервер.)
 +}}
 +
 +{{ ::mod_rpaf-01.jpg?nolink&600 |}}
 +
 +Установка связки [[Nginx]], [[Apache]] и [[mod_rpaf]].
 +
 +  * **Ubuntu**
 +Установка nginx 7.65 в Ubuntu 10.04.3 LTS<file>
 +# aptitude install nginx
 +</file>
 +Для установки более свежей версии (1.0.5 stable) нужно подключить репозиторий [[https://launchpad.net/~nginx/+archive/development|Nginx PPA]] на Launchpad.<file>
 +# aptitude install python-software-properties
 +
 +# add-apt-repository ppa:nginx/stable
 +или add-apt-repository ppa:nginx/development если нужно установить последнюю нестабильную версию
 +# aptitude update
 +# aptitude install nginx
 +</file>
 +  * **Debian** можно подключить для Debian Squeeze порты от Wheezy и добавить сторонний репозиторий
 +<file>
 +# nginx 
 +deb http://mirror.yandex.ru/debian/ wheezy main
 +deb-src http://mirror.yandex.ru/debian/ wheezy main
 +</file>
 +<file>
 +# nginx -V
 +nginx version: nginx/1.1.11
 +built by gcc 4.6.2 (Debian 4.6.2-4)
 +</file>
 +или же можно добавить репозиторий [[http://www.dotdeb.org|The repository for Debian-based LAMP servers]] и ключ к нему
 +<file>
 +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 -
 +</file>
 +====== mod_rpaf: cвязка Apache и Nginx ======
 +Для связки [[Apache]] и [[Nginx]] существует несколько вариантов:
 +  * при помощи [[mod_rpaf]] предварительно установив его из исходных кодов или из репозитория<file>
 +# aptitude install libapache2-mod-rpaf
 +</file>
 +  * при помощи модуля [[mod_extract_forwarded]] обеспечивающего функциональность аналогичную [[mod_rpaf]].
 +
 +**Теория**: запрос клиента приходит на nginx, nginx запрашивает Apache, при этом HTTP- заголовок HOST теряется, а адрес клиента REMOTE_ADDR Apache определит как 127.0.0.1. Заголовок HOST подставим в настройках nginx<file>
 +# 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;
 +</file>Но REMOTE_ADDR Apache определяет сам. Решается эта проблема при помощи mod_rpaf. Работает он следующим образом: Nginx знает IP клиента и добавляет некий HTTP-заголовок (например X-Real-IP), в который прописывает этот IP. mod_rpaf получает этот заголовок и прописывает его содержимое в переменную REMOTE_ADDR Apache. Таким образом, php-скрипты, выполняемые Apache будут видеть реальный IP клиента.
 +<note important>Убедитесь что устанавливаемая версия mod_rpaf не ниже чем 0.6 иначе директива RPAFheader работать не будет. </note>
 +Для связки Apache и nginx нужен установленный модуль mod_rpaf не ниже версии 0.6. Установка из исходных кодов описана в [[mod_rpaf]].<file bash>
 +aptitude install libapache2-mod-rpaf
 +</file> Настроим mod_rpaf:<file>
 +# nano /etc/apache2/mods-enabled/rpaf.load
 +LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf.so
 +</file>В конфигурационный файл mod_rpaf нужно изменения(добавить) параметры.<file>
 +# 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
 +</file>
 +  * Пример простого виртуального хоста, который только перенаправляет запросы Apache
 +<file>
 +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/;
 +    }
 +}
 +</file>
  

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!