Перед нами стоит задача, поставить Nginx как frontend что бы он обрабатывал только некоторые типы файлов, как мы знаем типы файлов — css, js, jpg, gif, exe, tar, pdf и другие подобные — это статические файлы, обрабатывая такие типы файлов веб-сервером nginx мы снизим нагрузку на веб-сервер Apache и получим хороший прирост к производительности. И так приступим: 1. Устанавливаем Nginx Установка Nginx занимает несколько секунд. Для Debian: apt-get install nginx FreeBSD: cd /usr/ports/www/nginx make install clean Конфигурационные файлы nginx находится в каталогах Debian — /etc/nginx/nginx.conf FreeBSD — /usr/local/etc/nginx/nginx.conf 2. Настройка Apache. Настроим Apache, откроем конфигурационный файл, (имя файла зависит от версии Apache и платформы).В нашем случае установлен Apache версии 2.2.11 и конфигурационный файл в FreeBSD и Debian находятся по следующим путям: Debian — /etc/apache2/ports.conf FreeBSD — /usr/local/etc/apache2/httpd.conf Находим строчку вида Listen 123.123.123.123:80 где “123.123.123.123:80″ ето ip вашего сервера (или же ip адрес и порт который слушает apache) и изменим порт например на 8080. У нас должно получится Listen 123.123.123:8080 На етом настройка Apache в качестве бекенда закончена. Преступим к настройке nginx 3. Настройка Nginx Отредактируем файл конфигурации nginx. между (перед закрывающейся } ) http { ...... } вставляем: server { listen 123.123.123.123:80; # ip вашего сервера и порт server_name sitename.ru www.sitename.ru; # Имя вашего домена с www и без (можно так же прописать алиасы) location / { proxy_pass http://123.123.123.123:8080/; # здесь мы указываем где находится Apache и что ему необходимо переадресовывать все запросы proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarder_for; } location ~* .(jpeg|jpg|gif|png|css|js|pdf|txt|tar)$ { # Типы файлов которые будет обрабатывать nginx без обращения к apache root /home/www/sitename.ru/public_html; # Путь к корневому каталогу вашего сайта } } Строки заголовка запроса X-Real-IP и X-Forwarded-For нужны будут вам если вы в своих скриптах используете информацию об IP-адресе посетителя или хотите скрыты от скриптов разделение на фрондэнд/бэкэнд и видеть нормальные IP пользователей, вместо IP фронтэнда, в таком случае вам необходимо будет дополнительно установить и настроить модуль mod_rpaf. 4. Установка mod_rpaf При работе данной связки, HTTP запросы сначала обрабатываются с помощью nginx, а потом передаются apache. В этом случае HTTP запрос происходит с IP-адреса, на котором расположен nginx, а не с IP, с которого на самом деле пришёл запрос. Это создаёт определённые неудобства: в скриптах форумов/блогов/гостевых книг/т.п. IP пользователей, оставивших ответ на странице, указываются как IP сервера. Потому mod_rpaf служит для того, чтобы восстановить настоящий IP после обработки запроса nginx'ом. Приступим к установке: FreeBSD cd /usr/ports/www/mod_rpaf make install clean После установки откройте конфигурационный файл Apache и проверьте наличие следующей строки : LoadModule rpaf_module libexec/apache22/mod_rpaf.so если такой строки нет, добавьте, но указывайте свой путь к файлу mod_rpaf.so Также добавьте следующие строчки в конфигурационный файл apache заменив при етом 123.123.123.123 на Ip адрес Вашего сервера RPAFenable On RPAFsethostname On RPAFproxy_ips 123.123.123.123 RPAFheader X-Forwarded-For |