Настройка блоков серверов 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. Вы можете повторить то же самое для нескольких доменов, используя одну и ту же процедуру.