Настройка nginx + apache

05.05.2015

Пример базовой связки и настройки nginx + apache

Что я хотел получить:

pic1

Nginx выступает как прокси сервер и отдает статику, а apache отрабатывает скрипты. Все примеры будут ориентированы на Centos, но по большому счету отличаться должны только пути и команды инсталляции и перезапуска, а сами конфиги идентичны.

До начала работы на сервере уже были установлены apache, mySql, Php и т.д. поэтому их настройку рассматривать не буду.

  1. Устанавливаем Nginx:

    yum -y install nginx

  2. Настраиваем конфиг Nginx /etc/nginx/conf.d:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    server {
        listen *:80;
        server_name DOMEN.ru;
        
        access_log /var/log/nginx/access.log;
        
        # Перенаправление на back-end
        location / {
            proxy_pass http://127.0.0.1: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
        # back-end этим заниматься не должен
        location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ {
            root /home/public/DOMEN.ru/www/;
        }
    }

  3. Вносим изменения в конфиг apache (/etc/httpd/httpd.conf):

    Меняем настройки:

    NameVirtualHost *:80
    Listen 80

    на

    NameVirtualHost *:8080
    Listen 8080

  4. Вносим изменение в виртуальные хосты (меняем порт):

    1
    2
    3
    4
    5
    <VirtualHost *:8080>
        ServerName SUB.DOMEN.ru
        DocumentRoot /home/public/SUB.DOMEN.ru/www
        ...
    </VirtualHost>
    

  5. Перезагружаем apache и nginx:

    service httpd restart
    service nginx restart


Категории: Linux, Centos
Яндекс.Метрика