Nginx — это очень популярный высокопроизводительный веб-сервер, который сочетает в себе возможности обратного прокси, балансировки нагрузки для серверов HTTP/HTTPS, кэширования и многого другого.
Веб-сервер Nginx обладает феноменальной возможностью обслуживать тысячи одновременных подключений, что делает его самым быстрым веб-сервером, обеспечивающим работу более половины самых загруженных сайтов в мире. К ним относятся Netflix, DuckDuckGo, DropBox и многие другие.
В этой статье мы расскажем, как установить Nginx с виртуальными хостами для размещения нескольких доменов на одном сервере Debian 10.
Предпосылки для Virtual Hosts
Прежде чем начать установку, убедитесь, что выполнены следующие требования:
- активирован минимальный сервера Debian 10;
- наличие полного доменного имени (Fully Qualified Domain Name) указывающее на сервер;
- хорошее подключение к интернету.
В этой статье мы используем домен sedicomm.com, указывающий на систему Debian 10 с IP-адресом 192.168.0.104.
Шаг 1: Обновка репозитория пакетов Debian 10
Прежде всего нам нужно обновить наш локальный репозиторий пакетов до последних версий. Для этого войдите в систему как обычный пользователь с привилегиями sudo и выполните команду указанную ниже:
$ sudo apt update -y
Шаг 2: Установка Nginx на Debian 10
Поскольку Nginx присутствует в репозиториях Debian, мы можем установить его с помощью менеджера пакетов apt, поставляемого с Debian:
$ sudo apt install nginx -y
Шаг 3: Проверка статуса веб-сервера Nginx
Если вы не обнаружили ошибки, значит веб-сервер Nginx был успешно установлен. Целесообразно проверить состояние веб-сервера перед дальнейшими настройками.
Чтобы проверить состояние Nginx, выполните следующую команду:
$ systemctl status nginx
Если веб-сервер запущен и работает, вы получите уведомление, показанное на скриншоте ниже:
Если вы хотите перезапустить веб-сервер Nginx, выполните следующую команду:
$ systemctl restart nginx
Для остановки Nginx, введите команду:
$ systemctl stop nginx
Для запуска веб-сервера, запустите следующую команду:
$ systemctl start nginx
Чтобы настроить веб-сервер Nginx для запуска при загрузке, введите следующую команду:
$ systemctl enable nginx
Шаг 4: Настройка брандмауэра на открытие порта для Nginx
После успешной установки и запуска Nginx, нам необходимо разрешить веб-доступ к сервису, особенно для внешних пользователей. Если у вас включен брандмауэр UFW, вам нужно разрешить доступ HTTP через брандмауэр.
Для этого выполните команду:
$ sudo ufw allow 'Nginx HTTP'
Затем перезагрузите брандмауэр, чтобы изменения вступили в сил:
$ sudo ufw reload
Теперь вы можете проверить, что HTTP разрешен через брандмауэр, запустив команду указанную ниже:
$ sudo ufw status
Из приведенного выше фрагмента видно, что Nginx HTTP разрешен через брандмауэр UFW.
Шаг 5: Доступ к веб-серверу Nginx
Для получения доступа к веб-серверу через веб-браузер, вам надо просмотреть IP-адрес сервера, как показано на скриншоте ниже:
http://server-IP-address
Это подтверждение того, что Nginx запущен и работает.
Шаг 6: Конфигурирование виртуальных узлов (Virtual Hosts) Nginx в Debian 10
Это необязательный шаг, но полезен в том случае, если вы хотите разместить несколько доменов (сайтов) на одном веб-сервере Nginx. Чтобы это работало, вам нужно указать доменное имя, указывающее на ваш сервер Debian.
Для этого раздела мы будем использовать доменное имя sedicomm.com, чья запись A указывает на IP-адрес сервера 192.168.0.104.
Создайте виртуальный хост (Virtual Host).
Во-первых, надо создать каталог для вашего домена, как показано ниже:
$ sudo mkdir -p /var/www/html/sedicomm.com
Затем назначьте владельца файла, как показано ниже:
$ sudo chown -R $USER:$USER /var/www/html/sedicomm.com
Затем назначьте разрешения на чтение. Выполнение эту функцию для группы и общедоступных пользователей, как показано ниже:
$ sudo chmod -R 755 /var/www/html/tecmint.com
Cоздайде простой пример страницы index.html с помощью текстового редактора vim:
$ sudo vim /var/www/html/tecmint.com/index.html
Добавьте пример содержимого в файл. Это будет отображаться в браузере:
<html>
<head>
<title>Welcome to Linux geeks</title>
</head>
<body>
<h1>Success! Welcome to your new server block on Sedicomm Nginx Web Server !</h1>
</body>
</html>
Сохраните и выйдите из редактора.
Для обслуживания этого контента необходимо создать файл конфигурации виртуального узла. Для этого пропишите следующую команду:
$ vim /etc/nginx/sites-available/sedicomm.com
Скопируйте и вставьте следующее содержимое в файл блока сервера:
server {
listen 80;
listen [::]:80;
root /var/www/html/sedicomm.com;
index index.html index.htm index.nginx-debian.html;
server_name sedicomm.com www.sedicomm.com;
location / {
try_files $uri $uri/ =404;
}
}
Обязательно обновите доменное имя sedicomm.com на свое собственное доменное имя.
Чтобы активировать или включить файл серверный блок, создайте ссылку, как показано ниже:
$ sudo ln -s /etc/nginx/sites-available/sedicomm.com /etc/nginx/sites-enabled/
Чтобы убедиться, что все настройки в Nginx настроены правильно, запустите следующую команду:
$ sudo nginx -t
Перезапустите Nginx.
$ sudo systemctl restart nginx
Зайдите в ваш браузер и обновите страницу. Если все прошло хорошо, браузер должен обслуживать веб-страницу вашего сервера, как показано на скриншоте ниже:
Шаг 7: Доступ к файлам журнала Nginx
Чтобы получить доступ к файлам журналов о запросах, сделанных на ваш сервер, откройте файл ниже:
$ sudo vim /var/log/nginx/access.log
Если вы столкнулись с ошибками на вашем веб-сервере Nginx, проверьте файл на наличие ошибок:
$ sudo vim /var/log/nginx/error.log
Итоги
Из этого руководства вы узнали, как установить Nginx на свой Debian 10 и как настроить его для поддержки дополнительных доменов.
Спасибо за уделенное время на прочтение статьи об установке Nginx с виртуальными хостами (Virtual Hosts) в Debian 10!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco и Linux с трудоустройством!
- Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
- Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
- Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
- Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
- Если хотите индивидуальный график — обсудим и осуществим.
- Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- отредактировать резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.