Содержание статьи:
В этой статье мы пошагово рассмотрим установку веб-сервера Nginx на Ubuntu Server 18.04. Научимся управлять его процессами. Настроим файрвол UFW для Nginx, проверим работу веб-сервера, разберемся с основными директориями, логами и посмотрим часто используемые команды.
Шаг 1. - Подготовка
На этапе подготовки мы убеждаемся что у нас есть всё необходимое для выполнения дальнейшей инструкции:
- Нам нужна установленная ОС Ubuntu Server 18.04 - Вам в помощь статья - Установка Ubuntu Server 18.04 LTS
- Ubuntu Server 18.04 должна иметь статический IP-адрес и доступ в интернет - Настройка сети в Ubuntu Server 18.04 [Netplan]
- Необязательно, но желательно включить фаервол UFW - Первоначальная настройка Ubuntu Server 18.04
Посмотрим свой IP-адрес, командой ifconfig.(Рис.1)
ifconfig

Адрес моего сервера - 192.168.3.9, в этой статье я буду вводить его в браузере на другом ПК, для проверки работоспособности Nginx. Вы должны будете ввести свой IP-адрес.
Если у вас, допустим, Ubuntu Desktop 18.04 и нету возможности подключиться с другого ПК, то вводите на своей же Ubuntu в браузере -"localhost" или IP-адрес - 127.0.0.1
Всё! На этом подготовка завершена.
Шаг 2. - Установка Nginx
Первым делом обновляем список пакетов репозитория.
sudo apt update
Nginx доступен в стандартном репозитории. Приступаем к установке.(Рис.2)
sudo apt install nginx

После установки сразу же посмотрим статус веб-сервера.(Рис.3)
sudo service nginx status

Как видим Nginx после установки сразу же сам запустился. [Об этом свидетельствует строчка - "Active: active (running)", также отсутствуют серьёзные ошибки.]
Nginx добавлен в автозагрузку. [Это мы понимаем по слову "enabled;" В строке "Loaded: loaded (/lib/systemd/system/nginx.service; enabled;".]
Посмотреть версию установленного Nginx можно с помощью команды nginx -v.(Рис.4)
nginx -v
Точная версия: nginx/1.14.0.

Если у вас Nginx не запустился, запустите его командой:
sudo service nginx start
Добавить Nginx в автозагрузку, можно командой:
sudo systemctl enable nginx
Если вдруг он вам не нужен в автозагрузке, то удалить Nginx из автозагрузки можно командой:
sudo systemctl disable nginx
Перезапустить Nginx, без потери соединения, для того чтобы применились изменения сделанные в конфигурационных файлах.
sudo service nginx reload
Шаг 3. - Настройка файрвола UFW
Для тех кто файрвол не включил и не собирается включать - Переходите к Шаг 4. - Проверка Nginx
Напомню! файрвол UFW мы включили в этой статье - Первоначальная настройка Ubuntu Server 18.04
Посмотрим профили приложений в файрволе UFW.(Рис.5)
sudo ufw app list

Видим три профиля Nginx:
- Nginx Full - открывает два порта 80 - http [ нешифрованный веб-трафик ] и 443 - https [ TLS / SSL - зашифрованный веб-трафик ]
- Nginx HTTP - открывает стандартный 80 порт - http [ нешифрованный веб-трафик ]
- Nginx HTTPS - открывает только 443 порт - https [ TLS / SSL - зашифрованный веб-трафик ]
Для того чтобы применить какой-либо профиль можно воспользоваться командой - sudo ufw allow 'Имя_профиля'
Мы применим первый профиль - Nginx HTTP.(Рис.6)
sudo ufw allow 'Nginx HTTP'

Правило применилось!
Шаг 4. - Проверка Nginx
На этапе Шаг 1. - Подготовка мы выяснили IP-адрес сервера, Я с другого компьютера, который находится в той же локальной сети, что и сервер, ввожу его в браузере.(Рис.7)
Для тех кто в танке... Если у вас, допустим, Ubuntu Desktop 18.04 и нету возможности подключиться с другого ПК, то вводите на своей же Ubuntu в браузере - localhost или IP-адрес - 127.0.0.1 © Шаг 1. - Подготовка
Если вы тоже увидели страницу "Welcome to nginx!", значит вы всё сделали правильно! Веб-сервер работает!

Каталоги и файлы конфигураций Nginx
/etc/nginx/ - Главный каталог веб-сервера Nginx.
- /etc/nginx/nginx.conf - Главный конфигурационный файл Nginx.
/var/www/ - Каталог хранит папки сайтов.
Изначально в нём содержится папка html, в которой лежит файл index.html [index.html - стартовая страница Nginx - "Welcome to nginx!", которую мы увидели на Шаг 4. - Проверка Nginx]
Для примера покажем, как может выглядеть содержимое каталога "/var/www/" у более опытных пользователей:
- /var/www/
- /html
- index.html
- /itdeer.ru
- /files
- /img
- index.html
- /yandex.ru
- /search.yandex.ru
- index.html
- /photo.yandex.ru
- index.html
- /search.yandex.ru
- /html
Хосты:
- /etc/nginx/sites-available/ - В директории хранятся файлы доступных виртуальных хостов.[Изначально в ней хранится файл "default" - Виртуальный хост по умолчанию.]
- /etc/nginx/sites-enabled/ - В директории хранятся активированные виртуальные хосты.
Nginx не использует файлы виртуальных хостов[sites-available], если они не активированы в директории "sites-enabled". Активация происходит путем создания символической ссылки в каталоге "sites-enabled", при помощи команды [пример для виртуального хоста с именем "itdeer.ru"]:
sudo ln -s /etc/nginx/sites-available/itdeer.ru /etc/nginx/sites-enabled/
Логи веб-сервера Nginx
Логи веб-сервера Nginx хранятся в каталоге /var/log/nginx/.(Рис.8)

Приведены команды для чтения логов с помощью "tail", "tail -10" - выводит последние 10 строк лога, можете подобрать цифру удобную вам.
/var/log/nginx/access.log - журнал всех запросов к серверу Nginx.
sudo tail -10 /var/log/nginx/access.log
/var/log/nginx/error.log - журнал всех ошибок Nginx.
sudo tail -10 /var/log/nginx/error.log
Часто используемые команды
Запустить Nginx:
sudo service nginx start
Остановить Nginx:
sudo service nginx stop
Статус Nginx:
sudo service nginx status
Добавить Nginx в автозагрузку:
sudo systemctl enable nginx
Удалить Nginx из автозагрузки:
sudo systemctl disable nginx
Перезапустить Nginx, без потери соединения, для того чтобы применились изменения сделанные в конфигурационных файлах.
sudo service nginx reload
Проверка конфигурации Nginx на ошибки [В ответ вы получите "сообщение об ошибке" или "nginx: the configuration file /etc/nginx/nginx.conf syntax is ok и nginx: configuration file /etc/nginx/nginx.conf test is successful" - отсутствие ошибок и синтаксисе файла /etc/nginx/nginx.conf и успешное выполнение конфигурации /etc/nginx/nginx.conf]:
sudo nginx -t
Версия Nginx:
nginx -v
Читаем журнал всех запросов к Nginx - access.log
sudo tail -10 /var/log/nginx/access.log
Читаем журнал всех ошибок Nginx - error.log
sudo tail -10 /var/log/nginx/error.log
У меня всё!
Была ли вам полезна статья? Есть возможность поддержать проект.
У меня установлен Nginx, работает. Но выполняя команду "sudo ufw app list" - его в списке нет. ~# sudo ufw app list Available applications: Apache Apache Full Apache Secure Bind9 Dovecot IMAP Dovecot POP3 Dovecot Secure IMAP Dovecot Secure POP3 OpenSSH Postfix Postfix SMTPS Postfix Submission
tail -10 ( -10 можно не указывать) tail по умолчанию выводи 10 последних записей