# Встановлення Nginx на Ubuntu і Debian: два способи і версії

> Покроково встановлюємо Nginx на Ubuntu і Debian: пакет з репозиторію дистрибутива або офіційний репозиторій nginx.org.

Nginx можна встановити на Ubuntu і Debian двома способами: зі стандартного репозиторію дистрибутива або з офіційного репозиторію nginx.org. Різниця — у версії і швидкості оновлень. На VDS і виділених серверах ZevsHost.net адміністратори зазвичай обирають другий варіант, коли потрібні свіжі функції на кшталт HTTP/3.

## Яку версію Nginx ставити

Репозиторій Ubuntu і Debian містить версію, яка потрапила у дистрибутив на момент його релізу, і майже не оновлюється до виходу наступного LTS. Офіційний репозиторій nginx.org постачає свіжий mainline або стабільний stable-випуск і оновлюється регулярно.

Для більшості сайтів на хостингу підійде версія з дистрибутива: вона перевірена часом і отримує патчі безпеки. Для HTTP/3, QUIC і нових модулів потрібен офіційний репозиторій — детальніше про це у статті про [HTTP/2 і HTTP/3 у Nginx](https://www.zevshost.net/uk/kb/nginx-http2-http3-quic/).

## Встановлення Nginx зі стандартного репозиторію

Найшвидший шлях — встановити пакет nginx з репозиторію дистрибутива. Команда однакова для Ubuntu і Debian:

```
sudo apt update
sudo apt install nginx -y
sudo systemctl enable --now nginx
```

Після встановлення Nginx одразу запускається і слухає порт 80. Якщо на сервері вже піднятий Apache, конфлікт портів дасть помилку bind() to 0.0.0.0:80 failed — спершу зупиніть Apache командою sudo systemctl stop apache2.

## Підключення офіційного репозиторію nginx.org

Щоб отримати найновішу версію, підключіть репозиторій nginx.org і його GPG-ключ:

```
sudo apt install curl gnupg2 ca-certificates lsb-release -y
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] http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
sudo apt update
sudo apt install nginx -y
```

Для Debian замість ubuntu у шляху пакетів вкажіть debian, а замість кодової назви Ubuntu — кодову назву свого релізу Debian. Після sudo apt update система має побачити пакет з нового джерела, а не з репозиторію дистрибутива.

## Перевірка встановлення і перший запуск

Після встановлення будь-яким способом перевірте версію, синтаксис конфігурації і статус сервісу:

- nginx -v — показує встановлену версію.
- nginx -V — показує версію і перелік модулів збірки.
- nginx -t — перевіряє синтаксис конфігурації без перезапуску.
- systemctl status nginx — показує, чи запущений сервіс.

Відкрийте IP сервера у браузері: сторінка привітання Welcome to nginx! підтверджує, що встановлення пройшло успішно. Далі варто замінити дефолтний конфіг власним server block, як описано у статті про [віртуальні хости Nginx](https://www.zevshost.net/uk/kb/nginx-server-block-virtualnye-hosty/).

## Таблиця: репозиторій дистрибутива проти офіційного

| Параметр | Репозиторій Ubuntu/Debian | Офіційний nginx.org |
| --- | --- | --- |
| Версія Nginx | Фіксується на релізі дистрибутива | Оновлюється регулярно |
| HTTP/3 і QUIC | Часто відсутній | Доступний у свіжих збірках |
| Патчі безпеки | Приходять через apt дистрибутива | Приходять напряму від nginx.org |
| Стабільність API конфігурації | Висока, змін мало | Можливі нові директиви |

## Що ще варто поставити поруч з Nginx

Голий вебсервер рідко працює сам по собі. Для типового сайту на PHP знадобиться ще декілька компонентів:

1. PHP-FPM і його налаштування — див. статтю про [налаштування і оптимізацію PHP-FPM](https://www.zevshost.net/uk/kb/php-fpm-nastroika-optimizatsiya/).
2. СУБД MySQL або MariaDB для зберігання даних сайту.
3. Повний стек LEMP цілком описаний у статті [як встановити LEMP](https://www.zevshost.net/uk/kb/ustanovit-lemp/).
4. SSL-сертифікат для HTTPS — без нього сучасні браузери позначають сайт як небезпечний.

Якщо після apt install nginx команда nginx -t видає помилку, а systemctl status nginx показує failed — майже завжди причина у зайнятому порту 80 або у синтаксичній помилці в /etc/nginx/nginx.conf. Перевірте вивід команди перед тим, як переходити до наступного кроку — створення першого сайту.

---

Джерело: https://www.zevshost.net/uk/kb/nginx-ustanovka-ubuntu-debian/
