Linux. Установка и настройка Nginx на CentOS 7

Думаю нет смысла рассказывать что такое Nginx и с чем его едят. Но для интересующихся напишу, что это web- и proxy- сервер для HTTP с открытым исходным кодом, написанный нашим соотечественником. Основной акцент этого сервера направлен на высокую производительность, распараллеливание и низкое потребление оперативной памяти.

В этом гайде я опишу как установить и первоначально настроить веб-сервер Nginx на операционных системах CentOS/RHEL.

Если Вы хотите попробовать установить и настроить Nginx на тестовом сервере — регистрируйтесь на VSCALE.IO и получите 2 месяца в подарок!

Добавление официального репозитория:

Добавить репозиторий можно несколькими способами. Оба написаны на странице помощи Nginx.
1 способ — скачивание RPM пакета, включающего в себя конфигурационный файл для yum и PGP-ключ.
Для CentOS 7 команды будут следующие:
[code bash]$ wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# rpm -Uvh nginx-release-centos-7-0.el7.ngx.noarch.rpm
2 способ — добавление репозитория вручную. Для этого нужно создать файл /etc/yum.repos.d/nginx.repo со следующим содержимым:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/$OS/$OSRELEASE/$basearch/
gpgcheck=0
enabled=1

Где $OS — операционная система (rhel или centos), а $OSRELEASE — версия (5, 6 или 7)

Установка Nginx

Установить Nginx через yum можно при помощи команды

# yum install nginx

Для добавления Nginx в автозагрузку следует выполнить команду

# chkconfig nginx on

Первоначальная настройка Nginx

Для начала сделаем резервные копии конфигурационных файлов командами

# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.back
# cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.back

Далее в файле конфигурации /etc/nginx/nginx.conf нужно изменить значение параметра worker_processes. Оно должно равняться количеству процессоров на сервере. Данное количество можно узнать командой

# lscpu | grep '^CPU(s)'

Чтобы разрешить сжатие нужно раскомментировать следующий параметр:

# gzip on;

Все, данный файл можно сохранить и закрыть.
Теперь отредактируем файл /etc/nginx/conf.d/default.conf. В нем нужно заменить имя сервера

server_name example.com;

Сохраняем файл и запускаем Nginx командой

# service nginx start

Стандартные порты и пути к файлам Nginx

  • /etc/nginx/ — директория содержащая файлы настроек Nginx сервера;
  • /etc/nginx/conf.d/ — директория содержащая файлы настроек SSL и виртуальных хостов (vhost);
  • /etc/nginx/nginx.conf — основной файл настроек;
  • /var/log/nginx/error.log — логи ошибок;
  • /var/log/nginx/access.log — логи доступа;
  • /usr/share/nginx/html/ — корневая директория сайта по умолчанию (document root);
  • TCP 80 — HTTP порт по умолчанию для Nginx;
  • TCP 443 — HTTPS порт по умолчанию для Nginx.

You may also like...

  • Fiil

    Может быть подскажете как настроить связку nginx+php+mysql? поискал на других ресурсах — все как-то сложно, а тут более-менее разжевано

  • OKI

    В ближайшее время постараюсь описать, но, если честно, писать там практически нечего, да и материалов на эту тему, пусть даже для Centos 7, много

  • Радик

    Ну не скажите, самая большая проблема при настройке всей этой связки и запуска сайта, это прописать правила на директорию с сайтом в правилах SELINUX.

    • OKI

      Поскольку сервер используется для внутренних нужд компании и, в частности, для упрощения работы отделу — SELinux был успешно выключен. Если же сервер выставляется во вне — тут уже данного мануала точно не хватит.