Перейти к основному содержанию
Nginx отдаёт сайт с твоего сервера: статические файлы, а через PHP-FPM ещё и PHP. Не хочешь настраивать руками – поставь Coolify, он сам поднимет reverse-proxy и SSL.

Установка

Подключись по SSH под root: Подключение. Команды для Ubuntu/Debian, под обычным пользователем добавляй sudo.
  1. Пакет – сервис запустится сам:
  2. Проверка – открой в браузере http://IP-твоего-сервера, должна появиться страница «Welcome to nginx!». Не открывается – скорее всего, закрыт порт 80: Файрвол.
Вместо Nginx подойдёт Apache: apt install apache2. Принцип тот же, конфиги и синтаксис другие.

Статический сайт

  • /etc/nginx/sites-available/ – конфиги всех сайтов.
  • /etc/nginx/sites-enabled/ – симлинки на включённые сайты.
  1. Файлы сайта:
  2. Конфиг – создай файл /etc/nginx/sites-available/site:
    /etc/nginx/sites-available/site
  3. Включение – симлинк, проверка синтаксиса и применение без обрыва соединений:
    Всегда запускай nginx -t перед reload. Если в конфиге ошибка, reload её не применит и сайт продолжит работать на старой конфигурации.
Вместо сайта открывается стартовая страница Nginx – запросы перехватывает конфиг default. Удали его симлинк и снова сделай reload: rm /etc/nginx/sites-enabled/default.

PHP

PHP-FPM нужен, чтобы Nginx обрабатывал .php: WordPress, скрипты.
  1. PHP-FPM:
  2. Сокет – его имя зависит от версии PHP, например php8.3-fpm.sock:
  3. Обработчик – добавь блок внутрь server { ... } и подставь своё имя сокета. С неверным именем Nginx отдаст ошибку 502:
  4. Применение:
  5. Проверка – создай /var/www/site/info.php с текстом <?php phpinfo(); и открой http://example.com/info.php: появится таблица с данными PHP. Потом удали файл, он раскрывает конфигурацию сервера.

HTTPS

Бесплатный сертификат Let’s Encrypt выпускает утилита certbot: SSL и Let’s Encrypt. Чтобы сайт открывался снаружи, открой в файрволе порты 80 (HTTP) и 443 (HTTPS): Файрвол. Дальше: SSL и Let’s Encrypt, Защита сервера.