Nginx — это популярный веб-сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах, с открытым исходным кодом. Он предназначен в основном для статического контента, либо динамического, как обратный-прокси сервер.
В статье опишем процесс установки Nginx на Centos, а также базовую настройку установленного веб-сервера.
Один из вариантов установки Nginx — установка его из официального репозитория. Но в данной инструкции воспользуемся возможностью установить его последнюю версию.
1. Для начала создадим файл с настройками нового репозитория, используя текстовый редактор Nano:
nano /etc/yum.repos.d/nginx.repo
Теперь его нужно привести к следующему виду,
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
Должно получиться, как на картинке ниже:
После ввода необходимых данных сохраняем файл (CTRL+O) и выходим (CTRL+X) из редактора.
2. Чтобы все внесенные изменения вступили в силу, обновим список всех пакетов. Это может занять некоторое время. На все вопросы системы даем утвердительный ответ — «y». Для обновления пакетов используем:
yum update
3. Когда все пакеты обновлены, можно переходить к установке веб-сервера:
yum install nginx
4. Как только установка будет закончена, нужно добавить службу в автозагрузку. Для этого применяем следующую команду для нашего веб-сервера:
systemctl enable nginx
Сразу после этого проверим результат выполнения предыдущей команды:
systemctl is-enabled nginx
Если терминал выводит в строку «enabled», как показано на картинке ниже, значит веб-сервер успешно добавлен в автозагрузку.
5. Запускаем установленный веб-сервер:
systemctl start nginx
Дополнительные команды для работы с веб-сервером были подробно описаны в инструкции по установке Nginx на Ubuntu.
6. Последним шагом будет проверка работоспособности установленного веб-сервера. Для этого вводим команду:
service nginx status
Показателем успешной установки и работы Nginx в фоновом режиме на сервере будет надпись «active (running)» в поле Active.
Веб-сервер установлен на Centos 7 и успешно запущен. Теперь перейдем к конфигурации файрвола.
vds
В операционной системе по умолчанию установлен брандмауэр firewalld
. Если он отсутствует по каким-либо причинам, то необходимо выполнить его установку самостоятельно. Для этого вводим в терминал команду:
yum install firewalld
По окончании скачивания добавим брандмауэр в автозапуск, а также включим его. Для этого вводим две следующие команды:
systemctl enable firewalld
systemctl start firewalld
Проверим брандмауэр на наличие в автозагрузке так же, как делали это с веб-сервером:
systemctl is-enabled firewalld
Строка «enabled» говорит об успешном добавлении в автозагрузку.
Теперь нужно открыть 80 (HTTP) и 443 (HTTPS) порты. Это необходимо для обеспечения связи между клиентом и сервером. В случае использования протокола HTTPS эта связь будет безопасной и зашифрованной. Чтобы добавить необходимые протоколы, вводим две следующие команды:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
Первая команда разрешит стандартный трафик HTTP для интерфейсов в зоне public на постоянной основе (флаг --permanent
), а вторая сделает то же самое, но для HTTPS.
После этого перезагружаем брандмауэр:
firewall-cmd --reload
Если всё сделано верно, то при вводе IP-адреса сервера в строку браузера открывается приветственная страница Nginx, как показано на картинке ниже.
Администрирование веб-сервера заключается в настройке основного конфигурационного файла nginx.conf
, а также остальных файлов конфигурации существующих на сервере сайтов.
Перечислим основные директории для работы с веб-сервером:
Более подробная инструкция по конфигурации веб-сервера представлена в статье по установке Nginx на Ubuntu. Также в ней подробно описаны все директивы основного конфигурационного файла. В данной инструкции мы не будем вносить в него изменений, а оставим все по умолчанию.
На веб-сервере может располагаться несколько сайтов, а не только один. Чтобы это сделать, необходимо настроить блоки сервера. Они аналогичны виртуальным хостам в Apache и отвечают за обработку определенных соединений, полагаясь на запрошенное имя домена, IP-адрес или порт.
В качестве примера создадим сайт centossite.dev и настроим для него серверный блок. Ниже пошагово опишем весь процесс.
1. Во-первых, организуем директорию для веб-сайта centossite.dev, применив флаг -p
, который отвечает за создание необходимых родительских каталогов:
sudo mkdir -p /var/www/centossite.dev/html
2. Во-вторых, создадим индексный файл в этом каталоге, чтобы в будущем проверить корректность конфигурации созданного блока сервера:
nano /var/www/centossite.dev/html/index.html
3. Теперь нужно заполнить созданный файл минимальным количеством информации:
<!DOCTYPE html>
<html lang="ru">
<head>
<title> centossite.dev </title>
<meta charset="utf-8">
</head>
<body>
<h1> Hello, User! Welcome to the centossite.dev </h1>
</body>
</html>
Этих данных хватит для тестирования веб-сервера. Сохраняем файл и выходим из редактора.
4. Следующим шагом будет создание файла конфигурации, чтобы веб-сервер обслуживал ранее созданный веб-сайт. Создадим новый сервер-блок, который будет отвечать за это:
nano /etc/nginx/conf.d/centossite.dev
5. Теперь необходимо заполнить файл centossite.dev простой конфигурацией. Воспользуемся той же, что и при установке веб-сервера на Ubuntu.
server {
listen 80;
listen [::]:80;
server_name centossite.dev www.centossite.dev;
root /var/www/centossite.dev/html;
index index.html index.xml;
location / {
try_files $uri $uri/ =404;
}
}
Сохраняем файл и выходим из редактора.
6. На данном этапе необходимо проверить созданный конфигурационный файл на наличие синтаксических ошибок. Для этого воспользуемся командой управления веб-сервером:
sudo nginx -t
Если никаких ошибок не обнаружено, то в консоли появятся соответствующие сообщения.
7. Чтобы все изменения вступили в силу, необходимо перезагрузить веб-сервер:
systemctl restart nginx
8. Перед проверкой созданного сайта в браузере обновим контексты безопасности SELinux, чтобы веб-сервер обслуживал содержимое каталога /var/www/centossite.dev. Сделать это можно благодаря следующей команде:
chcon -vR system_u:object_r:httpd_sys_content_t:s0 /var/www/centossite.dev/
9. Чтобы посмотреть на результат проделанной работы, необходимо перейти в браузере по домену созданного сайта или IP-адресу сервера. В нашем случае это будет выглядеть так, как продемонстрировано на картинке.
Размещайте свои проекты на VDS/VPS<br>в Timeweb Cloud
Мы рассмотрели процесс установки Nginx на Centos 7. По этой инструкции вы сможете установить веб-сервер на личный компьютер или сервер, произвести над ним базовые настройки. Кроме того, он сможет развернуть на веб-сервере личный веб-сайт и при необходимости переадресовать его с 80 порта на 443, чтобы обеспечить безопасное соединение. Также рекомендуем ознакомиться с инструкциями по установке SSL-сертификата на Nginx и настройке перенаправления c http на https.