Установка связки Nginx оптимизация и использование, Apache и mod_rpaf.
Установка 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
# 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 -
Для связки Apache и Nginx оптимизация и использование существует несколько вариантов:
# aptitude install libapache2-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
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/; } }