Ты, наверное, пришёл сюда не за “высокопроизводительным веб-сервером с открытым исходным кодом”, а потому что надо, чтобы Nginx тупо встал и работал.
Без этих ваших “предпосылок” и историй о том, как Apache был велик, а потом Nginx всё победил.

Ubuntu 16.04 старая, но жива. Nginx на ней встанет в два притопа, три прихлопа, но с нюансами.

1. Почисти порт 80 и 443

Если у тебя на этих портах уже висит Apache или ещё какая-то морда, выруби её к чёрту:

sudo systemctl stop apache2
sudo systemctl disable apache2

И да, убедись, что ты в системе с правами sudo. Если нет — ну, значит, это не твой сервер.

2. Самая ленивая установка из стандартного репозитория

Обновляем индексы пакетов и ставим Nginx:

sudo apt update
sudo apt install nginx

Проверяем, жив ли он:

sudo systemctl status nginx

Если там зелёный Active: running — значит, дышит. Если красное — ты либо накосячил, либо порт занят, либо у тебя руки дрожат после пятницы.

Версию глянуть:

nginx -v

3. Брандмауэр (если он у тебя включен)

UFW — штука полезная, но любит всё закрывать, даже когда ты не просил. Открой порты для HTTP и HTTPS:

sudo ufw allow 'Nginx Full' 

Проверяешь:

sudo ufw status

В списке должно появиться что-то вроде:

Nginx Full                 ALLOW

Если нет — ну, значит, либо UFW выключен, либо ты вообще без фаервола живёшь (и спишь спокойно до первого ботнета).

4. Проверка

Браузер, IP сервера — и должна вылезти унылая дефолтная страница Nginx. Это значит, что сервер поднялся и слушает.

5. Если нужен свежий Nginx, а не музейный экспонат

Ubuntu 16.04 хранит старые пакеты. Если хочешь поновее — подключай PPA от Nginx:

sudo apt install software-properties-common
sudo add-apt-repository ppa:nginx/stable
sudo apt update
sudo apt install nginx

Потом снова проверка версии:

nginx -v

6. Управление сервисом

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  # вернуть автозапуск 

7. Конфиги — не потеряйся

Всё лежит в /etc/nginx/. Главный файл — nginx.conf. Но трогать его лучше только трезвым.

Виртуальные хосты живут в:

  • /etc/nginx/sites-available/ — тут лежит то, что можно включить
  • /etc/nginx/sites-enabled/ — тут лежит то, что реально включено

Линкуем так:

sudo ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/

Повторяющиеся куски (SSL-настройки, редиректы и т.д.) — кидаешь в /etc/nginx/snippets/ и потом включаешь в конфиг.

Логи — /var/log/nginx/:

  • access.log — кто к тебе ломится
  • error.log — где ты облажался

8. Где хранить сайт

Веб-корень можно воткнуть куда угодно, но чаще всего:

/var/www/<site_name>
/home/<user>/<site_name>
/opt/<site_name>

Главное — права на папку должны быть у того пользователя, под которым работает Nginx (обычно www-data).

Итог

Поставил, запустил, проверил. Всё. Теперь можешь ставить туда свой сайт, API или просто картинку кота на главной, лишь бы Nginx крутился и не жаловался.
А “поздравляем, вы успешно установили” — это в других блогах. Тут просто — сделал и пошёл.