Nginx — это один из самых популярных в мире веб-серверов, который обеспечивает работу целого ряда крупнейших сайтов в Интернете с огромным трафиком. Обычно он использует ресурсы эффективнее, чем Apache, и может использоваться как веб-сервер или обратный прокси-сервер.
В этом руководстве мы расскажем, как выполнить установку Nginx на сервере CentOS 8.
Для выполнения этого обучающего руководства вам потребуется доступ к серверу CentOS 8, пользователь без прав root с привилегиями sudo и и активный брандмауэр, установленный на сервере. Чтобы выполнить настройку, воспользуйтесь руководством по начальной настройке сервера CentOS 8.
Для установки Nginx мы будем использовать менеджер пакетов dnf
, который представляет собой новый доступный по умолчанию менеджер пакетов в CentOS 8.
Установите пакет nginx
с помощью следующей команды:
При получении запроса введите y
для подтверждения того, что вы хотите установить nginx
. После этого dnf
выполнит установку dnf и любых требуемых зависимостей на ваш сервер.
После завершения установки воспользуйтесь следующей командой, чтобы активировать и запустить сервер:
Это позволит запускать Nginx во время загрузки системы.
Если вы активировали брандмауэр firewalld
согласно требованиям нашего руководства по первоначальной настройке для CentOS 8, вам потребуется изменить настройки брандмауэра, чтобы разрешить внешние подключения к вашему веб-серверу Nginx, который запускается на порту 80
по умолчанию.
Запустите следующую команду, чтобы на постоянной основе активировать соединения HTTP для порта 80
:
Чтобы подтвердить, что служба брандмауэра http
добавлена надлежащим образом, вы можете запустить следующую команду:
Вывод будет выглядеть следующим образом:
Outputpublic
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client http ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Для применения изменений вам необходимо перезагрузить службу брандмауэра:
Теперь сервер Nginx полностью установлен и доступен для внешних посетителей.
Теперь вы можете проверить, работает ли ваш веб-сервер, выполнив попытку перехода на публичный IP-адрес вашего сервера или его доменное имя с помощью вашего веб-браузера.
Примечание: если вы используете DigitalOcean в качестве вашего провайдера хостинга DNS, вы можете изучить нашу документацию для продукта для получения подробных инструкций по настройке нового доменного имени и указать ваш сервер.
Если у вас нет доменного имени, указывающего на ваш сервер, и вы не знаете публичный IP-адрес вашего сервера, вы можете найти его, введя следующую команду:
Команда выведет несколько IP-адресов. Вы можете попробовать каждый из них в своем браузере.
Также вы можете проверить доступность IP-адреса из других мест в интернете:
Введите полученный адрес в браузере, после чего вы попадете на страницу Nginx по умолчанию:
Если вы увидите эту страницу, это значит, что ваш веб-сервер установлен корректно.
Теперь, когда у вас есть работающий и запущенный веб-сервер, мы рассмотрим процесс управления службой Nginx с помощью systemctl
.
Если вам потребуется остановить работу веб-сервера, вы можете использовать следующую команду:
Чтобы запустить остановленный веб-сервер, введите:
Чтобы остановить и перезапустить службу еще раз, вы можете использовать следующую команду:
Nginx также может перегрузить изменения конфигурации без отключения подключений. Для этого введите:
По умолчанию Nginx настроен на автоматический запуск при загрузке сервера. Если вам это не нужно, вы можете отключить такое поведение с помощью следующей команды:
Чтобы снова активировать эту службу и активировать запуск Nginx во время загрузки, воспользуйтесь следующей командой:
Теперь, когда вы научились управлять службой Nginx, настало время познакомиться с несколькими важными директориями и файлами.
/usr/share/nginx/html
: реальный веб-контент, в состав которого по умолчанию входит только показанная ранее страница Nginx по умолчанию, выводится из директории /usr/share/nginx/html
. Это можно изменить путем изменения файлов конфигурации Nginx./etc/nginx
: директория конфигурации Nginx. Здесь хранятся все файлы конфигурации Nginx./etc/nginx/nginx.conf
: основной файл конфигурации Nginx. Его можно изменить для внесения изменений в глобальную конфигурацию Nginx./etc/nginx/conf.d/
: эта директория содержит файлы конфигурации для блока сервера, где вы можете определить веб-сайты, которые размещены в Nginx. Типичный подход — размещение каждого сайта в отдельном файле, название которого совпадает с доменным именем сайта, например, your_domain.conf
./var/log/nginx/access.log
: каждый запрос к вашему веб-серверу регистрируется в этом файле журнала, если Nginx не настроен иначе./var/log/nginx/error.log
: любые ошибки Nginx будут регистрироваться в этом журнале.Если вы хотите разместить несколько сайтов на одном и том же веб-сервере Nginx, вам придется создать блоки сервера. Блоки сервера Nginx работают аналогичным с виртуальными хостами Apache образом, позволяя одному серверу реагировать на запросы к нескольким доменным именам и предоставлять разное содержимое для каждого домена. В CentOS 8 серверные блоки определяются в файлах .conf
, расположенных в /etc/nginx/conf.d
.
Мы создадим серверный блок для домена с именем your_domain. Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, пройдите наше обучающее руководство Введение в DigitalOcean DNS.
По умолчанию Nginx на CentOS 8 настроен для предоставления документов из директории в /usr/share/nginx/html
. Хотя это хорошо работает для отдельного сайта, при размещении нескольких сайтов это может стать очень неудобно. Вместо изменения `/usr/share/nginx/html`` мы создадим внутри /var/www структуру директорий для нашего сайта your_domain, оставив /usr/share/nginx/html```**** в качестве директорию по умолчанию для вывода в случае, если запросу клиента не соответствуют никакие другие сайты.
Создайте директорию для your_domain следующим образом, используя флаг -p
для создания необходимых родительских каталогов:
Затем необходимо назначить права владения для директории с помощью переменной среды $USER,
которая будет использоваться для текущего системного пользователя:
Затем мы создадим образец страницы index.html
для тестирования конфигурации блока сервера. Предоставляемый с CentOS 8 по умолчанию текстовый редактор — vi
. vi
очень мощный текстовый редактор, но освоить работу с ним неопытным пользователям достаточно сложно. Вы можете установить более удобный для пользователя редактор, например, nano
, для облегчения редактирования файлов конфигурации на сервере CentOS 8:
Теперь вы можете использовать nano
для создания файла index.html:
В этом файле добавьте следующий код HTML:
<html>
<head>
<title>Welcome to your_domain</title>
</head>
<body>
<h1>Success! Your Nginx server is successfully configured for <em>your_domain</em>. </h1>
<p>This is a sample page.</p>
</body>
</html>
Сохраните файл и закройте его после завершения. Если вы `используете nano, вы можете сделать это, нажав CTRL + X, Y, а затем ENTER```````.
Чтобы Nginx обслуживал это содержимое, нам нужно создать серверный блок с правильными директивами, которые указывают на наш настраиваемый корневой каталог. Мы создадим новый серверный блок в /etc/nginx/conf.d/your_domain.conf
:
Вставьте следующий блок конфигурации:
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}
Сохраните и закройте файл после внесения изменений в его содержимое.
Чтобы убедиться, что в файлах Nginx нет синтаксических ошибок, запустите следующую команду:
Если проблем нет, вы увидите на экране следующие результаты:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
После тестирования конфигурации перезапустите Nginx для активации изменений:
Прежде чем вы сможете проверить изменения в браузере, вам нужно будет обновить контексты безопасности SELinux вашего сервера, чтобы позволить Nginx обслуживать содержание из директории /var/www/your_domain
.
Следующая команда позволит использовать ваш настраиваемый корневой каталог документов в качестве содержимого HTTP:
Теперь вы можете проверить настройку вашего пользовательского домена, перейдя на http://your_domain
, где вы увидите примерно следующее:
Эта страница отображает код HTML, который мы задали в корневой директории документов, созданной для серверного блока. Если вы увидите эту страницу, это означает, что ваш сервер Nginx настроен корректно для обслуживания вашего домена.
В этом руководстве мы узнали, как выполнить установку и настройку Nginx, веб-сервер с высокой производительностью и обратным прокси. Мы изучили управление службой Nginx, запущенной на вашем сервере, и узнали, где Nginx хранит файлы конфигурации, содержимое и логи.
Теперь у вас есть множество вариантов для типа контента и технологий, которые можно использовать на веб-сайтах, размещенных на вашем веб-сервере.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!