Nginx — это бесплатный высокопроизводительный HTTP- и обратный прокси - сервер с открытым исходным кодом, на котором работают некоторые из крупнейших сайтов в Интернете. По сравнению с Apache, Nginx может обрабатывать гораздо большее количество одновременных подключений и требует меньше памяти для каждого подключения. В этом руководстве мы обсудим, как установить и управлять Nginx в системах Ubuntu 16.04.

Предпосылки

Прежде чем приступить к изучению руководства, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo и что у вас нет Apache или какой-либо другой службы, работающей на порту 80 или 443.

Установите Nginx

Пакеты Nginx доступны в репозиториях программного обеспечения Ubuntu по умолчанию. Установка довольно проста, просто выполните следующие команды:

sudo apt update
sudo apt install nginx

После завершения установки проверьте состояние службы Nginx, набрав:

sudo systemctl status nginx

Вывод должен показать вам, что служба Nginx активна и работает:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2018-01-05 15:44:04 UTC; 1min 59s ago
 Main PID: 1291 (nginx)
   CGroup: /system.slice/nginx.service
           ├─1291 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
           └─1293 nginx: worker process

Чтобы проверить тип версии Nginx:

sudo nginx -v
nginx version: nginx/1.10.3 (Ubuntu)

 

Настройте брандмауэр

Предполагая, что вы используете UFW для управления брандмауэром, вам необходимо открыть порты HTTP ( 80) и HTTPS ( ).443

Вы можете сделать это, включив профиль «Nginx Full», который включает правила для обоих портов:

sudo ufw allow 'Nginx Full'

Чтобы проверить тип состояния брандмауэра:

sudo ufw status

Вывод будет выглядеть примерно так:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
Nginx Full                 ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
Nginx Full (v6)            ALLOW       Anywhere (v6)

 

Протестируйте установку

Чтобы убедиться, что Nginx работает должным образом, откройте http://YOUR_IP выбранный вами браузер, и вы увидите страницу приветствия Nginx по умолчанию:
 

Установите Nginx из репозитория Nginx PPA.

Пакеты Nginx из репозиториев Ubuntu часто устаревают. Чтобы установить последнюю версию Nginx, используйте официальный репозиторий Nginx PPA. Выполните следующие действия, чтобы установить последнюю версию Nginx в Ubuntu 16.04:

Сначала установите software-properties-commonпакет:

sudo apt install software-properties-common

Добавьте репозиторий Nginx PPA с помощью следующей команды:

sudo add-apt-repository ppa:nginx/stable

Обновите список пакетов и установите Nginx:

sudo apt update
sudo apt install nginx

После завершения установки проверьте версию Nginx с помощью:

sudo nginx -v

Вывод будет выглядеть примерно так:

nginx version: nginx/1.12.2

Управляйте сервисом Nginx с помощью systemctl

Вы можете управлять службой Nginx так же, как и любой другой единицей systemd.

Чтобы остановить службу Nginx, запустите:

sudo systemctl stop nginx

Чтобы запустить службу Nginx, введите:

sudo systemctl start nginx

Перезапустите службу Nginx :

sudo systemctl restart nginx

Перезагрузите службу Nginx после внесения некоторых изменений в конфигурацию:

sudo systemctl reload nginx

Отключите службу Nginx для запуска при загрузке:

sudo systemctl disable nginx

Повторно включите службу Nginx, чтобы она снова запускалась при загрузке:

sudo systemctl enable nginx

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

  • Все файлы конфигурации Nginx находятся в /etc/nginx/каталоге.
  • Основной файл конфигурации Nginx — это /etc/nginx/nginx.conf.
  • Чтобы упростить настройку Nginx, рекомендуется создать отдельный файл конфигурации для каждого домена. У вас может быть столько файлов блоков сервера, сколько вам нужно.
  • Файлы блоков сервера Nginx хранятся в /etc/nginx/sites-availableкаталоге. Файлы конфигурации, найденные в этом каталоге, не используются Nginx, если они не связаны с /etc/nginx/sites-enabledкаталогом.
  • Для активации блока сервера необходимо создать симлинк (указатель) из конфигурационного файла sites в sites-availableдиректории на sites-enabledдиректорию.
  • Рекомендуется следовать стандартному соглашению об именах, например, если ваше доменное имя, mydomain.comто ваш файл конфигурации должен называться/etc/nginx/sites-available/mydomain.com.conf
  • Каталог /etc/nginx/snippetsсодержит фрагменты конфигурации, которые можно включить в файлы блоков сервера. Если вы используете повторяющиеся сегменты конфигурации, вы можете преобразовать эти сегменты в фрагменты и включить файл фрагмента в блоки сервера.
  • Файлы журнала Nginx ( access.logи error.log) находятся в /var/log/nginx/каталоге. Рекомендуется иметь разные файлы журнала для каждого блока сервера access.error
  • Вы можете установить корневой каталог документов вашего домена в любое место, которое вы хотите. Наиболее распространенные места для webroot включают:
    • /home/<user_name>/<site_name>
    • /var/www/<site_name>
    • /var/www/html/<site_name>
    • /opt/<site_name>

Заключение

Поздравляем, вы успешно установили Nginx на свой сервер Ubuntu 18.04. Теперь вы готовы начать развертывание своих приложений и использовать Nginx в качестве веб-сервера или прокси-сервера.