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

Настройка блоков серверов Nginx (виртуальных хостов) в CentOS/RHEL 8


Серверный блок Nginx эквивалентен виртуальному хосту Apache и позволяет разместить на вашем сервере более одного домена или веб-сайта.

В этой статье вы узнаете, как настроить серверные блоки Nginx (виртуальные хосты) в CentOS 8 и RHEL 8 Linux.

Предпосылки:

  • Запись A для вашего домена. Проще говоря, записи A относятся к записи DNS, где имя домена указывает на общедоступный IP-адрес сервера, в данном случае веб-сервера Nginx. В этом руководстве мы будем использовать доменное имя crazytechgeek.info.
  • Сервер Nginx или стек LEMP, установленный на экземпляре CentOS 8 или RHEL 8.
  • Пользователь с правами Sudo.

Давайте начнем!

Шаг 1. Создайте корневой каталог документов Nginx.

Сразу же вам необходимо создать собственный корневой веб-каталог для домена, который вы хотите разместить. В нашем случае мы создадим каталог, как показано, используя параметр mkdir -p для создания всех необходимых родительских каталогов:

sudo mkdir -p /var/www/crazytechgeek.info/html

После этого назначьте разрешения каталога, используя переменную среды $USER. При этом убедитесь, что вы вошли в систему как обычный пользователь, а не как пользователь root.

sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

Затем рекурсивно назначьте нужные права доступа к каталогу, как показано:

sudo chmod -R 755 /var/www/crazytechgeek.info/html

Шаг 2. Создайте образец страницы для домена

Далее мы собираемся создать файл index.html внутри корневого каталога пользовательского веб-сайта, который будет обслуживаться доменом после выполнения запроса.

sudo vim /var/www/crazytechgeek.info/html/index.html

Внутри файла вставьте следующий пример содержимого.

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
  <h1>Awesome! Your Nginx server block is working!</h1>
    </body>
</html>

Сохраните и выйдите из файла конфигурации.

Шаг 3. Создайте блок сервера Nginx в CentOS

Чтобы веб-сервер Nginx обслуживал содержимое файла index.html, который мы создали на шаге 2, нам необходимо создать файл блока сервера с соответствующими директивами. Поэтому мы создадим новый серверный блок по адресу:

sudo vim /etc/nginx/conf.d/crazytechgeek.info.conf

Затем вставьте конфигурацию, которая появляется ниже.

server {
        listen 80;
        listen [::]:80;

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info www.crazytechgeek.info;

        location / {
                try_files $uri $uri/ =404;
        }

		
    access_log /var/log/nginx/crazytechgeek.info.access.log;
    error_log /var/log/nginx/crazytechgeek.info.error.log;

}

Когда вы закончите, сохраните изменения и выйдите из файла конфигурации. Чтобы убедиться, что все конфигурации Nginx исправны и не содержат ошибок, выполните команду:

sudo nginx -t

Вывод ниже должен быть подтверждением того, что все готово!

Наконец, перезапустите веб-сервер Nginx и убедитесь, что он работает должным образом:

sudo systemctl restart nginx
sudo systemctl status nginx

Шаг 4. Тестирование серверного блока Nginx в CentOS

Мы закончили с настройками. Остается только подтвердить, обслуживает ли наш серверный блок контент в корневом веб-каталоге, определенном ранее в файле index.html.

Для этого просто откройте браузер и перейдите в домен вашего сервера, как показано:

http://domain-name

Как уже отмечалось, наш контент обслуживается серверным блоком, что является явным признаком того, что все прошло хорошо.

Шаг 5. Включите HTTPS в домене, размещенном на Nginx.

Вы можете рассмотреть возможность шифрования своего домена с помощью Lets Encrypt SSL, чтобы добавить уровень защиты и обеспечить безопасность входящего и исходящего трафика на веб-сервере.

sudo dnf install certbot python3-certbot-nginx
sudo certbot --nginx

Чтобы убедиться, что ваш домен правильно настроен на HTTPS, посетите https://yourwebsite.com/ в браузере и найдите значок замка в строке URL.

Заключение

Мы успешно настроили блокировку сервера Nginx в CentOS 8 и RHEL 8. Вы можете повторить то же самое для нескольких доменов, используя одну и ту же процедуру.