Бортовой журнал Ктулху

Настройка связки Apache2 и Nginx

Проблему увеличения производительности веб-ресурса можно решить двумя способами. Первый наращивание мощности сервера (увеличение CPU и RAM), второй — использование прокси, который будет принимать часть нагрузки на себя. Наиболее популярным в качестве фронтэнд сервера является nginx.

Очень популярная тема в интернете, но, как правило, практически нет ни одной статьи, которая на 100% поможет в настройке, всегда приходится импровизировать.

Постараюсь оформить краткую инструкцию по настройке.

 

Для начала необходимо понять как работает такая связка.

 

nginx

Установка необходимых пакетов

sudo apt-get install apache2 nginx

 

Сначала настроим Apache на прослушивание другого порта, например 8080.

/etc/apache2/ports.conf

NameVirtualHost *:8080
Listen 8080

Также, если запущены виртуальные хосты, поменять и в них.

/etc/apache2/sites-available/default

<virtualhost 127.0.0.1:8000>

Перезагрузим Apache и он будет работать на порту 8080.

sudo service apache2 restart

 

Настроим nginx.

server {
listen *:80; ## listen for ipv4
server_name ВАШ_ДОМЕН;

# Перенаправление на back-end
location / {
proxy_pass ВАШ_ДОМЕН:8080/;
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;
}
# Статическиое наполнение отдает сам nginx
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ {
root ПУТЬ_ДО_КОРНЕВОГО_КАТАЛОГА_САЙТА;
}
}