Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

Как установить Nginx на CentOS: пошаговая инструкция

Илья Ушаков
Илья Ушаков
Технический писатель
26 октября 2022 г.
1220
7 минут чтения
Средний рейтинг статьи: 5

Nginx — это популярный веб-сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах, с открытым исходным кодом. Он предназначен в основном для статического контента, либо динамического, как обратный-прокси сервер.

В статье опишем процесс установки Nginx на Centos, а также базовую настройку установленного веб-сервера.

Установка Nginx

Один из вариантов установки 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

Должно получиться, как на картинке ниже:

Image2

После ввода необходимых данных сохраняем файл (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 и успешно запущен. Теперь перейдем к конфигурации файрвола. 

Настройка файрвола

В операционной системе по умолчанию установлен брандмауэр 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, как показано на картинке ниже.

Image5

Настройка Nginx

Администрирование веб-сервера заключается в настройке основного конфигурационного файла nginx.conf, а также остальных файлов конфигурации существующих на сервере сайтов.

Перечислим основные директории для работы с веб-сервером:

  • /etc/nginx — в данной директории хранятся все конфигурационные файлы, в том числе и главный конфигурационный файл nginx.conf.
  • /etc/nginx/conf.d/ — отвечает за хранение файлов конфигурации сайтов, размещенных на веб-сервере.
  • /var/log/nginx — эта директория служит журналом веб-сервера, в котором хранятся файлы с логами. Например, access.log и error.log. Первый отвечает за хранение всех запросов к веб-серверу, а второй регистрирует все ошибки на нем.

Более подробная инструкция по конфигурации веб-сервера представлена в статье по установке 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

Если никаких ошибок не обнаружено, то в консоли появятся соответствующие сообщения.  

Image7

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-адресу сервера. В нашем случае это будет выглядеть так, как продемонстрировано на картинке.

Image6

Заключение

Мы рассмотрели процесс установки Nginx на Centos 7. По этой инструкции вы сможете установить веб-сервер на личный компьютер или сервер, произвести над ним базовые настройки. Кроме того, он сможет развернуть на веб-сервере личный веб-сайт и при необходимости переадресовать его с 80 порта на 443, чтобы обеспечить безопасное соединение. Также рекомендуем ознакомиться с инструкциями по установке SSL-сертификата на Nginx и настройке перенаправления c http на https.

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону