В данной связке Nginx будет выступать фронтендом для Apache. То есть, все подключения будут поступать к нему, а он уже будет их фильтровать и по надобности отправлять к апачу. Плюсом данной связки является возможность использования конфигурационных файлов .htaccess, которые очень часто используются и разрабатывать сайты стоит с учетом данного фактора. А производительность… Связка Nginx + Nginx будет производительнее, хотя это и так понятно 🙂
Про установку Nginx написано в заметке Установка Nginx на Debian 6.
Теперь ставим Apache 2.2:
# apt-get install apache2
Меняем в конфигах apache порт на какой-то другой. Для примера примем порт 81. Все виртуальных хосты апача должны быть настроены на этот порт.
# nano /etc/apache2/ports.conf
Поскольку у апача сейчас есть только дефолтный хост, то сделаем, чтобы он работал на связке Apache + Nginx. Поменяем ему порт на 81:
# nano /etc/apache2/sites-available/default
Теперь приступим к настройке хост в Nginx. Настраивать будем тоже дефолтный хост:
# nano /etc/nginx/sites-available/default
Находим location / и вставляем в него настройки проксирования (тайм-ауты выставите под себя):
proxy_pass http://localhost:81; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_connect_timeout 120; proxy_send_timeout 120; proxy_read_timeout 180;
Стандартный вариант (было):
location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules; }
Вариант с проксированием на apache (стало):
location / { proxy_pass http://localhost:81; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_connect_timeout 120; proxy_send_timeout 120; proxy_read_timeout 180; # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules; }
Перезагружаем сервисы:
# service apache2 restart && service nginx restart
Теперь можно открывать локалхост и наслаждаться 🙂
27 ноября, 2015 at 9:35 пп
в apache2 неплохо бы модуль rpaf настроить, тогда в логи апача будут реальные IP клиентов попадать через параметр X-Real-IP
21 января, 2016 at 10:39 дп
Забыл о нем написать, спасибо за замечание!
В целом его не нужно настраивать, он из коробки уже выполняет свою задачу. Что действительно нужно, так это поставить и включить:
# apt-get install libapache2-mod-rpaf
# a2enmod rpaf
# server apache2 restart
Недавно столкнулся с багом в rpaf, написал новую заметку:
nginx + Apache 2.4 и REMOTE_ADDR (решение проблемы)