Как установить Nginx на Ubuntu 24
Установка Nginx на Ubuntu — одна команда apt: пакет есть в репозитории самой Ubuntu и сразу запускается. Инструкция — для Ubuntu Server 24.04 и 22.04. Ниже — ещё брандмауэр, первый свой сайт и более новые сборки Nginx с nginx.org.
Установка Nginx из репозитория Ubuntu
Зайдите на сервер по SSH пользователем, которому можно sudo, обновите список пакетов и поставьте Nginx. Служба запустится сама и будет подниматься после перезагрузки.
sudo apt update
sudo apt install -y nginx
nginx -vПоследняя команда покажет версию, например nginx version: nginx/1.24.0 (Ubuntu) на Ubuntu 24.04. Откройте в браузере http://<адрес сервера>: на странице по умолчанию написано «Welcome to nginx!».

Как открыть порты 80 и 443 в брандмауэре
Брандмауэр Ubuntu, UFW, на свежей системе выключен. Проверьте:
sudo ufw statusЕсли там Status: active, разрешите Nginx: профиль Nginx Full открывает и HTTP (80), и HTTPS (443).
sudo ufw allow 'Nginx Full'
sudo ufw statusПрежде чем включать UFW по SSH, разрешите сам SSH, иначе брандмауэр оборвёт ваше же подключение: sudo ufw allow OpenSSH
Как настроить первый сайт
В Ubuntu у каждого сайта свой файл в /etc/nginx/sites-available/, а Nginx читает те, на которые есть ссылка из /etc/nginx/sites-enabled/. Создайте папку для файлов сайта и файл настроек. Вместо example.com подставьте свой домен.
sudo mkdir -p /var/www/example.com
echo '<h1>It works</h1>' | sudo tee /var/www/example.com/index.html
sudo nano /etc/nginx/sites-available/example.comВставьте в файл этот текст, сохраните сочетанием Control-O и выйдите через Control-X:
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}Включите сайт, проверьте настройки и перечитайте их в Nginx:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginxПроверка должна заканчиваться словами syntax is ok и test is successful. Если там ошибка, в ней будут файл и строка. Когда домен уже указывает на сервер, добавьте HTTPS с бесплатным сертификатом: как получить сертификат Let’s Encrypt через Certbot.
Как поставить свежий Nginx с nginx.org
Пакет Ubuntu получает исправления безопасности, но остаётся на одной версии, пока жив выпуск системы. Новее — в официальном репозитории nginx.org. Команды ниже — с его страницы установки: они добавляют ключ подписи nginx.org и репозиторий «stable», а затем ставят Nginx оттуда.
sudo apt install -y curl gnupg2 ca-certificates lsb-release ubuntu-keyring
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
nginx -vПакет с nginx.org приносит свой /etc/nginx/nginx.conf, который читает только /etc/nginx/conf.d/*.conf. Если поставить его поверх Nginx из Ubuntu, сайты из sites-enabled перестанут открываться, а служба останется остановленной — для этого две последние команды. Перенесите каждый сайт в /etc/nginx/conf.d/<имя>.conf, затем проверьте настройки и перечитайте их двумя последними командами из раздела о первом сайте.
Где лежат файлы Nginx
/etc/nginx/nginx.conf— главные настройки (процессы, журналы, gzip)./etc/nginx/sites-available/и/etc/nginx/sites-enabled/— ваши сайты, по файлу на сайт (пакет Ubuntu)./var/log/nginx/access.logи/var/log/nginx/error.log— запросы и ошибки./var/www/html/— страница по умолчанию.- Проверить настройки:
sudo nginx -t - Применить их, не обрывая соединения:
sudo systemctl reload nginx
Если Nginx не запускается
bind() to 0.0.0.0:80 failed (98: Address already in use)— порт 80 занят другим веб-сервером, чаще всего Apache. Кто именно, покажет команда:sudo ss -tlnp | grep ':80'Если это Apache, остановите его:sudo systemctl disable --now apache2- Вместо вашей страницы открывается «Welcome to nginx!» — домен попал в сайт по умолчанию. Проверьте
server_nameв своём файле или уберите сайт по умолчанию:sudo rm /etc/nginx/sites-enabled/defaultЗатем перечитайте настройки Nginx. - Снаружи страница не открывается — проверьте брандмауэр:
sudo ufw statusНа облачном сервере проверьте ещё группу безопасности или брандмауэр провайдера для портов 80 и 443. - При любой другой ошибке смотрите последние строки журнала службы:
sudo journalctl -u nginx -n 50Затем — журнала ошибок:sudo tail -n 50 /var/log/nginx/error.log
Если вы работаете и на Mac

Сборка мусора в MacWashing находит кэш всех знакомых ей программ, в том числе спрятанный внутри их данных, а ещё журналы, мусор Xcode и остатки удалённых программ. Она показывает, сколько места занимает каждая находка, и очищает всё за один раз. Всё спорное остаётся без галочки, пока вы не решите.
Бесплатная пробная версия · macOS 14 и новее
Вопросы и ответы
Как установить Nginx на Ubuntu?
Обновите список пакетов: sudo apt update Затем поставьте Nginx: sudo apt install nginx Он сразу запустится и покажет свою приветственную страницу на порту 80.
Чем reload отличается от restart?
reload перечитывает настройки и не трогает открытые соединения. restart останавливает и снова запускает службу. После правки сайта хватает reload, restart — только если reload не помог.
Какую версию Nginx выбрать?
Пакета Ubuntu хватает большинству сайтов, и он обновляется вместе с системой. Репозиторий nginx.org нужен, когда требуется что-то из более нового выпуска.