Поиск по сайту:

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


На этой странице

  1. Предпосылки
  2. Установите Apache и PHP
  3. Настройка веб-сервера Apache
  4. Установите веб-сервер Nginx
  5. Настройка Nginx в качестве обратного прокси-сервера для Apache
  6. Заключение

Как вы знаете, Apache и Nginx являются бесплатными и мощными веб-серверами с открытым исходным кодом по всему миру. Apache известен своей мощью, а Nginx известен своей скоростью. Оба имеют некоторые недостатки и преимущества. Nginx использует PHP-FPM для загрузки файлов PHP, в то время как Apache загружает PHP самостоятельно. Apache используется для динамической части веб-сайта, в то время как Nginx обслуживает статические файлы, такие как графика, файлы CSS и js.

Рекомендуется использовать их оба на одном сервере и получать преимущества от обоих. В этом руководстве мы покажем вам, как использовать Nginx в качестве веб-сервера и обратного прокси-сервера для веб-сервера Apache в CentOS 8.

Предпосылки

  • Сервер под управлением CentOS 8.
  • Доменное имя, указанное с IP-адресом вашего сервера.
  • Пароль root настраивается на сервере.

Установите Апач и PHP

Во-первых, вам нужно будет установить веб-сервер Apache и PHP на свой сервер. Вы можете установить его с помощью следующей команды:

dnf install httpd php php-cli -y

После завершения установки запустите службу Apache и включите ее запуск при перезагрузке системы с помощью следующей команды:

systemctl start httpd
systemctl enable httpd

Настройка веб-сервера Apache

По умолчанию веб-сервер Apache прослушивает порт 80. Итак, вам нужно настроить веб-сервер Apache для прослушивания порта 8080. Вы можете сделать это, отредактировав основной файл конфигурации Apache:

nano /etc/httpd/conf/httpd.conf

Измените сообщение с 80 на 8080, как показано ниже:

Listen 8080

Сохраните и закройте файл, затем перезапустите службу Apache, чтобы изменения вступили в силу:

systemctl restart httpd

Затем проверьте порт прослушивания Apache с помощью следующей команды:

ss -antpl | grep httpd

Вы должны получить следующий результат:

LISTEN    0         128                      *:8080                   *:*        users:(("httpd",pid=1693,fd=4),("httpd",pid=1692,fd=4),("httpd",pid=1691,fd=4),("httpd",pid=1688,fd=4))

Затем создайте файл info.php в корневом веб-каталоге Apache:

nano /var/www/html/info.php

Добавьте следующую строку:

<?php phpinfo(); ?>

Сохраните и закройте файл, когда закончите.

Затем откройте веб-браузер и перейдите по URL-адресу http://ваш-сервер-ip:8080/info.php. Вы должны увидеть следующую страницу:

Установите веб-сервер Nginx

Далее вам нужно будет установить пакет Nginx на свой сервер. Вы можете установить его с помощью следующей команды:

dnf install nginx -y

После установки Nginx запустите службу Nginx и включите ее запуск при перезагрузке системы с помощью следующей команды:

systemctl start nginx
systemctl enable nginx

Настройте Nginx в качестве обратного прокси для Apache

Теперь вам нужно настроить Nginx в качестве обратного прокси-сервера для пересылки всех запросов, поступающих на порт 80, на веб-сервер Apache, который прослушивает порт 8080.

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

nano /etc/nginx/conf.d/proxy.conf

Добавьте следующие строки:

server {
    listen 80;
    server_name test.example.com;

    location ~ \.php$ {
        proxy_pass http://your-server-ip:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Сохраните и закройте файл, когда закончите. Затем перезапустите веб-сервер Nginx, чтобы применить изменения:

systemctl restart nginx

Теперь откройте веб-браузер и перейдите по URL-адресу http://test.example.com/info.php. Вы должны увидеть следующую страницу:

Как видите, PHP обслуживается веб-сервером Nginx.

Заключение

В приведенном выше руководстве вы узнали, как настроить Nginx в качестве веб-сервера и обратного прокси-сервера для Apache. Я надеюсь, что это поможет вам повысить производительность вашего сайта.