Купить Корзина
Логотип REG.RU
  • Вход
  • Помощь
  • Рег.облако
  • Облачные серверы
  • Установка программного обеспечения
  • Как настроить Nginx reverse в качестве обратного прокси для Apache

Как настроить Nginx reverse в качестве обратного прокси для Apache

Apache и Nginx ― это программное обеспечение с открытым исходным кодом, которое позволяет создавать веб-сервер.

Apache работает по технологии мультипроцессинга: каждое соединение с сервером помещается в отдельный поток и доводится в нём до финального результата. Сервер не возьмет в работу другое соединение, пока первое не будет обработано полностью. У этой технологии есть один существенный минус — высокий риск перегрузки. Поэтому Апач требует для работы много ресурсов и мощностей.

Nginx удобно использовать как почтовый сервер или обратный прокси-сервер (например, nginx reverse proxy nginx или nginx reverse proxy https to https). Он снижает нагрузку на сервер при обработке запросов на файлы, а также балансирует нагрузки, что повышает отказоустойчивость сервера. Nginx позволяет обрабатывать сотни тысяч единовременных подключений на одном физическом сервере, однако требует установки PHP-FPM. Поэтому Nginx и Апач нередко используют в связке. В статье ниже мы расскажем, как настроить их для совместной работы, а также, как использовать обратный прокси-сервер.

Обратите внимание:

  • на сервере должна быть установлена ОС Ubuntu 18.04 или 20.04,
  • перед настройкой нужно подключиться к серверу по SSH.

Сервис настройки NGINX

Не тратьте время на ручную подготовку конфигурационных файлов для NGINX. Выберите нужные параметры и скачайте уже сформированный конфигурационный файл.

Попробовать

Как установить и настроить Nginx proxy

  1. 1.

    Введите команду:

    apt-get install nginx
  2. 2.

    Откройте файл конфигурации в редакторе с помощью команды:

    vim /etc/nginx/sites-available/example_nginx.conf
  3. 3.

    Вставьте в консоль следующий код:

    server {
    
    
    
         listen   80;
    
         root /var/www/;
    
         index index.php;
     
         server_name example.com;
     
         location / {
                 try_files $uri $uri/ /index.php$args;
         }
     
         location ~ \.php$ {
                 proxy_set_header X-Real-IP  $remote_addr;
                 proxy_set_header X-Forwarded-For $remote_addr;
                 proxy_set_header Host $host;
                 proxy_pass http://127.0.0.1:8080;
         }
     
         location ~ /\. {
                 deny all;
         }
    }

    Этими командами вы установили:

    • правильный веб-каталог в качестве root;
    • в качестве index — index.php;
    • обслуживание страниц с помощью try_files, либо переадресацию на прокси;
    • proxy_pass в качестве адреса для proxy;
    • запрет доступа к скрытым файлам с помощью location.

    Благодаря этим правилам файлы вида .php будут перенаправляться с Nginx прокси на сервер Apache (если для него назначен порт 8080).

  4. 4.
    Сохраните изменения и выйдите из редактора.
  5. 5.

    Включите созданный виртуальный хост командами:

    cd /etc/nginx/sites-enabled/
    ln -s ../sites-available/example_nginx.conf example_nginx.conf
    service nginx reload

Готово, вы установили Nginx reverse proxy. Теперь займитесь настройкой Апач.

Как настроить Apache и PHP

  1. 1.

    Введите команду:

    apt-get install apache2 libapache2-mod-php7.0
  2. 2.

    Откройте нужный файл командой:

    vim /etc/apache2/ports.conf
  3. 3.

    Укажите порт, к которому будут адресованы запросы Apache:

    Listen 127.0.0.1:8080

    Затем сохраните изменения и выйдите из редактора.

  4. 4.

    Откройте файл через редактор командой:

    vim /etc/apache2/sites-available/example-apache.conf
  5. 5.

    Добавьте в файл:

    <VirtualHost 127.0.0.1:8080>
    
    
    
         DocumentRoot /var/www/
         ServerName example.com
         ErrorLog /var/log/apache2/example_error.log
         CustomLog /var/log/apache2/example_access.log common
         <Directory /var/www/>
                 Options FollowSymLinks
                 AllowOverride All
                 #Следующие 2 строки не будут работать в apache >= 2.4, необходимо использовать директиву Require all granted
                 #Order allow,deny
                 #Allow from all
                 Require all granted
         </Directory>
    </VirtualHost>

    Затем сохраните изменения и выйдите из редактора.

  6. 6.

    Запустите созданный виртуальный хост. После этого запустите Apache командой:

    a2ensite example-apache.conf && service apache2 start
  7. 7.
    mkdir -p /var/www/ && echo '<?php phpinfo();' > /var/www/index.php

Готово, nginx reverse proxy настройка прошла успешно. Чтобы использовать серверы совместно, мы задали в настройках директиву «proxy_pass». Если вы введете в поисковую строку браузера «http://example.com/», отобразится вывод функции phpinfo().

Теперь при обращении к сайту статические элементы (css, js-файлы и изображения) будет обрабатывать Nginx, а Apache — динамический контент (php-скрипты).

Как использовать обратный прокси-сервер

Прокси-сервер — это дополнительный шлюз, который участвует в интернет-соединении. Proxy используется в качестве посредника между клиентом и сайтом, на который он хочет перейти. При подключении через proxy-server текущий IP-адрес клиента заменяется на другой — это ускоряет интернет-соединение, а также позволяет обойти блокировку ресурса и многое другое.

Возможности прокси-сервера

Соединение, установленное через дополнительный шлюз в виде прокси-сервера (например, proxy reverse nginx), позволяет:

  • отслеживать трафик;
  • увеличивать итоговую скорость загрузки за счет предварительного кэширования данных;
  • посещать сайты в режиме полного инкогнито за счет постоянной смены IP-адреса;
  • посещать территориально или регионально заблокированные ресурсы за счет перенаправления трафика через IP с местоположением, отличным от реального;
  • устанавливать запрет на посещение определенных сайтов по их IP-адресу.

Подробнее об особенностях прокси-сервера и о том, как к нему подключиться, читайте в статье.

Помогла ли вам статья?
ДаНет
раз уже
помогла

Спасибо за оценку!
Как мы можем улучшить статью?

Нужна помощь?
Напишите в службу поддержки!

Рассылка REG.RU

Лайфхаки, скидки и новости об IT

Подписываясь, вы принимаете правила рассылок

Услуги
  • Стоимость услуг
  • Хостинг
  • Зарегистрировать домен
  • Создание сайтов
  • REG.Site
  • VPS
  • Серверы и ДЦ
  • SSL-сертификат
Помощь
  • База знаний
  • Шаблоны заявлений
  • Оставить отзыв, предложение
  • Сообщить о нарушении
Партнерам
  • Партнерские программы
  • Профессионалам IT
  • Бонусная программа
  • REG.API
  • Промоматериалы
Полезное
  • Акции и скидки
  • Мероприятия
  • Юридические услуги
  • Юридическим лицам
  • ЭДО
  • Whois
REG.RU
  • О компании
  • Контакты и офисы
  • Новости
  • Отзывы клиентов
+7 495 580-11-11

Телефон в Москве

8 800 555-34-78

Бесплатный звонок по России

  • vk
  • telegram
  • ok
  • moikrug
  • youtube
  • twitter

Нашли опечатку?
Выделите и нажмите
Ctrl+Enter

  • mir
  • sbp
  • sberbank
  • qiwi
  • yamoney
  • visa
  • mastercard
Все способы оплаты Все способы оплаты
  • REG.RU
  • © ООО «Регистратор доменных имен РЕГ.РУ»

    Правовая информация и правила пользования

  • shop.reg.ru Магазин доменов
  • statonline.ru Доменная статистика
  • reg.ru/blog Мы пишем
  • Мы используем файлы cookie. Продолжив работу с сайтом, вы соглашаетесь с Политикой обработки персональных данных и Правилами пользования сайтом.