Простой пример настройки Nginx как front-end + Apache как back-end.

Nginx+Apache2Обсуждаемые примеры – это всего лишь примеры и для перевода в продакшн требуют глубокой доработки, но как база для понимания вполне подойдет.

Схема
Nginx будет у нас стоять как front-end и отдавать статику, так как с ней он справляется намного быстрее, нежели Apache.
Динамический контент у нас будет генерировать Apache, и отдавать его Nginx, который в свою очередь будет отдавать его клиенту.

Установка серверов.
Устанавливаем apache2 со всеми необходимыми модулями. Предполагается что вы будете использовать php5 и mysql.

$ sudo su
$ apt-get install apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql

 Теперь устнавливаем nginx.

$ apt-get install nginx

 Весь необходимый софт у нас установлен.

Настройка Nginx.
Создаем новый виртуальный хост. Выполняем команды ниже, вписываем туда желаемое имя сайта.

$ touch /etc/nginx/sites-available/SITE_NAME
$ ln -s /etc/nginx/sites-available/SITE_NAME /etc/nginx/sites-enabled/SITE_NAME

 Теперь открываем в только что созданный файл

$ gedit /etc/nginx/sites-available/SITE_NAME

 и пишем там следующие настройки

server {
    listen SITE_NAME:80; # ip вашего сервера и порт
    server_name SITE_NAME www.SITE_NAME; # Имя вашего домена с www и без
    location / {
        proxy_pass http://SITE_NAME:8080/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
    location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|txt|wav|mp3|js)$ { # Обрабатываемые типы файлов
        root ПУТЬ_К_КОНЕВОМУ_КАТАЛОГУ # Путь к корневому каталогу вашего сайта
    }
}

Здесь мы видим, что Nginx слушает 80 порт, и если запросили статику, то он сам её и отдает, а если нет, то он перенаправляет на порт 8080, на который мы сейчас настроим Apache.

Настройка apache.
Ну во первых начнем с того, если вы используете mod_rewrite и только что заново поставили сервер, то не забудьте

$ a2enmode rewrite

 Меняем порты в ports.conf

$ gedit /etc/apache2/ports.conf

 Меняем в открывшемся файлике строки

NameVirtualHost *:80
Listen 80

 на

NameVirtualHost *:8080
Listen 8080

 можем закрыть этот файл.
Редактируем уже имеющийся виртуальный хост.

$ gedit /etc/apache2/sites-available/default

В примере приведены минимальные настройки, вы можете сделать как вам угодно.

<VirtualHost *:8080>
DocumentRoot ПУТЬ_К_КОРНЕВОМУ_КАТАЛОГУ
</VirtualHost>

 Теперь перезагружаем сервера

$ service apache2 restart
$ service nginx restart

Все, минимальная настройка завершена. В дальнейшем можно поднять несколько виртуальных хостов, по мануалу  в статье .

Автор статьи pharrell
Закладка Постоянная ссылка.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *