Ранее мы рассматривали процесс установки LEMP-стека, который является стандартным набором программ для размещения динамических веб-сайтов на Ubuntu 18.04 LTS. Однако программное обеспечение, входящее в состав LTS (долгосрочной поддержки), нередко оказывается устаревшим. В данном руководстве мы изучим, как установить актуальную версию Nginx на Ubuntu 18.04 и Ubuntu 20.04. На момент написания статьи последняя версия Nginx — 1.17.0, выпущенная 21 мая 2019 года. Журнал изменений доступен для ознакомления здесь.
Содержание статьи
- 1 Установка самой свежей версии Nginx на Ubuntu 18.04 и 20.04 из официальных репозиториев Nginx.
- 2 Конфигурация пользователя для процесса Nginx.
- 3 Активирование файлов серверного блока
- 4 Инсталляция плагина Certbot для веб-сервера Nginx.
- 5 Как настроить автоматический перезапуск Nginx.
- 6 Nginx принимает соединения на различных IP-адресах.
- 7 Последующий этап.
Установка самой свежей версии Nginx на Ubuntu 18.04 и 20.04 из официальных репозиториев Nginx.
Nginx. org предлагает репозиторий для Ubuntu, который можно использовать для установки актуальной версии Nginx. Для начала создайте файл источника репозитория, используя следующую команду. Nano является текстовым редактором в командной строке.
sudo nano /etc/apt/sources. list. d/nginx. list
Вставьте две указанные строки в файл.
deb [arch=amd64] http://nginx. org/packages/mainline/ubuntu/ bionic nginx deb-src http://nginx. org/packages/mainline/ubuntu/ bionic nginx

Если вы работаете с Ubuntu 20.04, замените bionic на focal.
deb [arch=amd64] http://nginx. org/packages/mainline/ubuntu/ focal nginx deb-src http://nginx. org/packages/mainline/ubuntu/ focal nginx
Для сохранения файла в текстовом редакторе Nano используйте комбинацию CTRL+O, после чего подтвердите действие, нажав Enter. Чтобы выйти, нажмите CTRL+X. Для проверки целостности пакетов, загруженных из этого репозитория, потребуется импортировать публичный ключ Nginx с помощью указанных ниже команд.
wget http://nginx. org/keys/nginx_signing. key sudo apt-key add nginx_signing. key
После того как вы добавите репозиторий в вашу систему Ubuntu 18.04, выполните следующую команду для обновления данных о репозиториях.
sudo apt update
Если вы установили Nginx из официального репозитория Ubuntu, вам потребуется его удалить.
sudo apt remove nginx nginx-common nginx-full nginx-core
Также рекомендуется создать резервную копию главного файла конфигурации Nginx, расположенного по пути /etc/nginx/nginx.conf, поскольку он будет заменен новым файлом nginx.conf в процессе установки обновленной версии Nginx.
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
Ваши текущие файлы блоков сервера, известные как файлы виртуальных хостов, останутся без изменений. Теперь выполните следующую команду, чтобы установить Nginx из репозитория nginx. org.
sudo apt install nginx
Если менеджер пакетов apt предложит установить обновлённую версию файла /etc/nginx/nginx.conf, вы можете выбрать «Нет».
После установки Nginx проверьте настройки конфигурации сервера.
sudo nginx - t
После успешного завершения теста запустите Nginx.
sudo systemctl start nginx
Активируйте автозапуск при старте системы.
sudo systemctl enable nginx
Для проверки статуса Nginx выполните следующую команду.
systemctl status nginx
●nginx.service - веб-сервер nginx с высокой производительностью. Статус: активен (загружен из /lib/systemd/system/nginx.service;включеноПредустановка от производителя: активирована.деятельно (функционирует) с Вс 2019-05-26 21:01:10 CST; 3s назад Документы: http://nginx. org/en/docs/ Процесс: 16159 ExecStart=/usr/sbin/nginx - c /etc/nginx/nginx.conf (код=выход, статус=0/УСПЕХ) Основной PID: 16160 (nginx) Задачи: 2 (лимит: 4915) CGroup: /system. slice/nginx.service ├─16160 nginx: главный процесс /usr/sbin/nginx - c /etc/nginx/nginx.conf └─16161 nginx: рабочий процесс 26 мая 21:01:10 bionic. local. domain systemd[1]: Запуск nginx - высокопроизводительного веб-сервера. 26 мая 21:01:10 bionic. local. domain systemd[1]: Запущен nginx - высокопроизводительный веб-сервер.
Для того чтобы узнать версию Nginx, выполните следующую команду:
nginx - v
версия nginx: nginx/1.17.0
Вы можете ознакомиться с дополнительной информацией, перейдя по следующей ссылке:
nginx - V

Конфигурация пользователя для процесса Nginx.
Пакет Nginx, загружаемый из репозитория nginx. org, настраивает nginx для работы от имени пользователя процесса Nginx, что можно увидеть в первой строке конфигурационного файла /etc/nginx/nginx.conf (если вы решили установить новую версию этого файла).
user nginx;
Пользователь и группа по умолчанию для процесса PHP-FPM установлены как www-data, что можно проверить в файле /etc/php/7.4/fpm/pool. d/www.conf.
user = www-data group = www-data
Для этого необходимо задать www-data в качестве пользователя для процесса Nginx в конфигурационном файле /etc/nginx/nginx.conf.
sudo nano /etc/nginx/nginx.conf
user nginx;
user www-data;
Сохраните файл и закройте его. После этого перезапустите Nginx.
sudo systemctl reload nginx
Активирование файлов серверного блока
По умолчанию активируются только файлы из каталога /etc/nginx/conf.d/. Если вы хотите задействовать файлы серверного блока из каталога sites-enabled, убедитесь, что в разделе http файла nginx.conf добавлены следующие строки.
include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;
Инсталляция плагина Certbot для веб-сервера Nginx.
Если вы уже устанавливали Nginx из репозитория Ubuntu, то, вероятно, пакет python3-certbot-nginx был удалён при установке Nginx из репозитория nginx. org. Для автоматического обновления вашего TLS-сертификата его необходимо переустановить.
sudo apt install python3-certbot-nginx
Как настроить автоматический перезапуск Nginx.
Иногда Nginx может завершать работу по разным причинам. Если вы хотите, чтобы он автоматически перезапускался после сбоя, необходимо внести изменения в юнит службы Nginx. Для начала скопируйте оригинальный юнит службы в папку /etc/systemd/system/.
sudo cp /lib/systemd/system/nginx.service /etc/systemd/system/nginx.service
После этого внесите изменения в подразделение службы.
sudo nano /etc/systemd/system/nginx.service
Включите следующую строку в раздел [Service].
Restart=always RestartSec=2
[Service] Type=forking PIDFile=/var/run/nginx. pid ExecStart=/usr/sbin/nginx - c /etc/nginx/nginx.conf ExecReload=/bin/kill - s HUP $MAINPID ExecStop=/bin/kill - s TERM $MAINPID Restart=always RestartSec=2
Это приведет к тому, что Nginx будет пытаться восстановить работу каждые 2 секунды после возникновения ошибки. Сохраните изменения и закройте файл, а затем перезапустите Nginx.
sudo systemctl restart nginx
Nginx принимает соединения на различных IP-адресах.
Если у вашего сервера имеется несколько IP-адресов, вы можете настроить его на использование всех доступных адресов в конфигурации виртуального хоста, как указано ниже.
server
Забавно, но Nginx можно настроить так, чтобы он прослушивал IP-адрес, который не принадлежит вашему серверу. К примеру, даже если ваш сервер не имеет IP 12.34.56.81, вы можете сделать так, чтобы Nginx работал на этом адресе.
server
Nginx не сможет задействовать данный IP-адрес, но при этом ошибок не возникнет. Он сможет продолжить работу с другими IP-адресами, и ваш сайт будет функционировать корректно.
Для выполнения этого трюка необходимо, чтобы хотя бы один из виртуальных хостов использовал директиву listen 443 ssl;. Вы можете создать тестовый виртуальный хост, как показано в примере ниже.
server < server_name localhost; listen 80; >server < server_name localhost; listen 443 ssl; ssl_certificate /etc/letsencrypt/live/example.com/fullchain. pem; # управляется Certbot ssl_certificate_key /etc/letsencrypt/live/example.com/privkey. pem; # управляется Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # управляется Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams. pem; # управляется Certbot >
Вы можете настроить Nginx для взаимодействия с удалённым IP-адресом, изменив соответствующий параметр ядра Linux.
sudo nano /etc/sysctl. d/60-custom.conf
Вставьте следующую строку в данный файл.
net. ipv4.ip_nonlocal_bind=1
Закройте файл после сохранения. Далее примените внесённые изменения.
sudo sysctl - p /etc/sysctl. d/60-custom.conf
Последующий этап.
Надеюсь, данное руководство было полезным для установки последней версии Nginx на Ubuntu 18.04 и 20.04. Также можно установить актуальную версию MariaDB на этих же версиях Ubuntu.
- Установка MariaDB 10.5 на Ubuntu 18.04 и 20.04: пошаговое руководство.
Для обеспечения безопасности вашего сайта WordPress вы можете настроить веб-аппликационный брандмауэр ModSecurity, который поможет защитить его от попыток взлома.
- Настройка ModSecurity для Nginx на системах Debian или Ubuntu.
Если вам понравился этот пост, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать свежие советы и рекомендации.

