В мире веба есть два лагеря: те, кто работает с Nginx, и те, кто пока что с ним не сталкивался — но всё впереди. Nginx — это не магия, а просто быстрый и лёгкий веб-сервер, который не жрёт память как не в себя (привет Apache) и не падает от 200 соединений. Он умеет быть и веб-сервером, и обратным прокси. Всё. Это всё, что тебе надо знать, прежде чем мы его поставим.

И да, забудь про официальные сказки в стиле “высокопроизводительный бла-бла-бла”. Nginx нужен, чтобы твой сайт или API не умерли под нагрузкой и работали быстрее. Всё остальное — второстепенно.

1. Перед тем как лезть в установку

  • У тебя должен быть пользователь с sudo.
  • Apache или другой веб-сервер не должен жрать порт 80 или 443.
  • Если уже сидит Apache — гони его с этих портов или сноси.

2. Ставим Nginx

Ubuntu сама знает, где его взять, так что без танцев:

sudo apt update
sudo apt install nginx

После этого Nginx поднимется сам. Проверить, что он жив:

sudo systemctl status nginx

Если видишь зелёное active (running) — значит сервер встал. Если нет — смотри логи, а не гугли "почему не работает Ubuntu".

3. Настраиваем брандмауэр

Если у тебя включен UFW — открой порты 80 (HTTP) и 443 (HTTPS):

sudo ufw allow 'Nginx Full' 

Проверка:

sudo ufw status

Видишь Nginx Full ALLOW? Значит, можно лезть через браузер.

4. Проверяем, что сервер живой

Открой в браузере:

http://<твой_IP> 

Если видишь дефолтную страницу Nginx — всё ок. Если нет, то либо фаервол, либо DNS, либо руки.

5. Управление сервисом без плясок

Это systemd, тут всё по стандарту:

sudo systemctl stop nginx     # стоп
sudo systemctl start nginx    # старт
sudo systemctl restart nginx  # перезапуск
sudo systemctl reload nginx   # перезагрузка конфигов
sudo systemctl disable nginx  # убрать из автозагрузки
sudo systemctl enable nginx   # вернуть в автозагрузку 

Перезапуск нужен, если всё упало. Reload — когда менял конфиг и хочешь без даунтайма.

6. Где всё лежит и как не потеряться

  • Главный конфиг: /etc/nginx/nginx.conf
  • Виртуальные хосты (server blocks): /etc/nginx/sites-available
  • Активные сайты: /etc/nginx/sites-enabled (сюда ведут симлинки)
  • Логи: /var/log/nginx/access.log и /var/log/nginx/error.log
  • Повторяющиеся куски конфигов удобно выносить в /etc/nginx/snippets
  • Корни сайтов (webroot) обычно в:
  • /var/www/
  • /var/www/html/
  • /opt/
  • или куда тебе удобно, хоть в /home/user/project

Чтобы сайт заработал: кидаешь конфиг в sites-available, делаешь симлинк в sites-enabled, перезагружаешь Nginx.

7. Лирическое отступление для тех, кто любит усложнять

Да, можно крутить gzip, кеширование, балансировку, HTTP/2 и ещё тонну фич. Но это не сейчас. Сначала подними сервер и убедись, что он отдаёт хоть что-то, кроме ошибок.

8. Финал

Всё. У тебя есть Nginx, он живёт на 80/443 портах, ты знаешь, где его крутить и как он включается/выключается. Дальше — твои приложения, домены и шаманство с конфигами. А если после установки всё равно не работает — смотри логи и не пиши на форумах "помогите срочно".