Установка веб-сервера Nginx на Ubuntu Server 18.04

В этой статье мы пошагово рассмотрим установку веб-сервера Nginx на Ubuntu Server 18.04. Научимся управлять его процессами. Настроим файрвол UFW для Nginx, проверим работу веб-сервера, разберемся с основными директориямилогами и посмотрим часто используемые команды.

Шаг 1. - Подготовка

На этапе подготовки мы убеждаемся что у нас есть всё необходимое для выполнения дальнейшей инструкции:

Посмотрим свой IP-адрес, командой ifconfig.(Рис.1)

ifconfig
Командой ifconfig узнаём IP-адрес нашего сервера.
Рис.1 - Командой ifconfig узнаём IP-адрес нашего сервера.

Адрес моего сервера - 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
Устанавливаем веб-сервер Nginx на Ubuntu 18.04.
Рис.2 - Устанавливаем веб-сервер Nginx на Ubuntu 18.04.

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

sudo service nginx status
Смотрим статус веб-сервера Nginx.
Рис.3 - Смотрим статус веб-сервера Nginx.

Как видим 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.
Рис. 4 - Смотрим версию веб-сервера Nginx.

Если у вас 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
Просматриваем профили приложений UFW.
Рис.5 - Просматриваем профили приложений UFW.

Видим три профиля 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'
Применяем профиль Nginx в файволе UFW.
Рис.6 - Применяем профиль Nginx в файволе UFW.

Правило применилось! 


Шаг 4. - Проверка Nginx

На этапе Шаг 1. - Подготовка мы выяснили IP-адрес сервера, Я с другого компьютера, который находится в той же локальной сети, что и сервер, ввожу его в браузере.(Рис.7)

Для тех кто в танке... Если у вас, допустим, Ubuntu Desktop 18.04 и нету возможности подключиться с другого ПК, то вводите на своей же Ubuntu в браузере - localhost или IP-адрес - 127.0.0.1 © Шаг 1. - Подготовка

Если вы тоже увидели страницу "Welcome to nginx!", значит вы всё сделали правильно! Веб-сервер работает! 

Вводим IP-адрес сервера в браузере. Страница "Welcome to nginx!".
Рис.7 - Вводим IP-адрес сервера в браузере. Страница "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

Хосты:

  • /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)

 Просмотр папки с логами /var/log/nginx/.
Рис.8 - Просмотр папки с логами /var/log/nginx/.

Приведены команды для чтения логов с помощью "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

Читаем журнал всех запросов к Nginxaccess.log

sudo tail -10 /var/log/nginx/access.log

Читаем  журнал всех ошибок Nginx - error.log

sudo tail -10 /var/log/nginx/error.log

У меня всё!

Поделиться публикацией

Была ли вам полезна статья? Есть возможность поддержать проект.

1
Комментарии

avatar
1 Количество основных комментариев
0 Количество ответов
0 Подписчики комментариев
 
Комментарий с большинством ответов
Горячая тема
1 Количество авторов комментариев
Владислав Последние авторы комментариев
  Подписаться на комментарии  
Сначала новые Сначала старые По рейтингу
Уведомление о
Владислав
Гость
Владислав

У меня установлен 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