Введение
Nginx является одним из самых популярных веб-серверов в мире, его используют многие крупные сайты, которые посещает большое количество пользователей каждый день. Во многих отношениях Nginx является более безопасным и удобным вер-сервером, чем Apache, поэтому его можно использовать в качестве основного веб-сервера либо обратного прокси-сервера.
Из данного руководства вы узнаете о том, как правильно установить Nginx на Ubuntu 16.04, релиз которой состоялся в апреле 2016 года.
Требования
Перед тем, как приступить к установке, вы должны убедиться, что у вас есть обычный пользователь (не суперпользователь), который может выполнять команды sudo. Как только вы создадите такой аккаунт, авторизуйтесь в качестве этого пользователя перед выполнением дальнейших шагов.
Шаг 1: устанавливаем Nginx
Так как Nginx доступен в стандартных репозиториях Ubuntu, установить его достаточно просто.
В данной сессии мы еще не обращались к системе пакетов apt, поэтому для начала вам нужно обновить локальный индекс пакетов. Таким образом вы получите доступ к самым последним (новым) спискам пакетов:
$ sudo apt-get update
И лишь после этого устанавливайте Nginx:
$ sudo apt-get install nginx
После выполнения данной команды apt-get установит Nginx и все необходимые зависимости на ваш сервер.
Шаг 2: Настраиваем Firewall
Перед тем, как начать тестирование Nginx, необходимо перенастроить Firewall для того, чтобы обеспечить доступ к приложению. Nginx регистрируется как приложение с профилем ufw, поэтому разрешить доступ Nginx достаточно легко.
Для начала нам нужно вывести список названий всех приложений с профилем ufw:
$ sudo ufw app list
Вы увидите такой список:
Output Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
Как вы видите, существует три возможных профиля для Nginx:
Nginx Full: профиль открывает два порта – 80 (обычный, незашифрованный веб-трафик) и 443 (TLS/SSL зашифрованный трафик)
Nginx HTTP: профиль открывает только порт 80
Nginx HTTPS: профиль открывает только порт 443
Рекомендуется включать наиболее ограниченный профиль, который позволит пропускать только тот трафик, который вы настроили. Так как на данный момент SSL-протокол еще не настроен, нам нужно открыть только порт 80 для обычного трафика.
Для этого введите команду:
$ sudo ufw allow 'Nginx HTTP'
И подтвердите изменения:
$ sudo ufw status
Вы увидите следующие данные, касающиеся разрешенного трафика:
Output Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)
Шаг 3: проверяем веб-сервер
В самом конце процесса установки Ubuntu 16.04 запустит Nginx. Веб-сервер уже должен работать.
Используя демон systemd, вы можете проверить, запущен ли веб-сервер:
$ systemctl status nginx
Вам высветится информация, где особое внимание нужно уделить строчке:
Active: active (running) since Mon 2016-04-25 15:44:00 UTC; 5min 9s ago
Благодаря этим данным вы можете убедиться, что все работает исправно. Однако лучший способ протестировать работу Nginx – это запросить какую-либо страницу.
К примеру, можно попробовать загрузить стандартную посадочную страницу Nginx, используя ваше доменное имя сервера или IP-адрес.
Если у вашего сервера нет доменного имени, и вы не хотите его устанавливать, вы можете использовать публичный IP-адрес вашего сервера. Получить его можно несколькими путями.
Введите следующую команду в командную строку вашего сервера:
$ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
В ответ вы увидите несколько строчек – введите каждую из них в адресную строку своего браузера, чтобы проверить, какая из них работает.
Альтернативный способ узнать ваш публичный IP-адрес – использовать служебную программу cURL:
$ sudo apt-get install curl $ curl -4 icanhazip.com
Когда вы получили свой IP-адрес или доменное имя, введите его в адресную строку браузера:
http://доменное_имя_или_IP-адрес
Вам должна высветиться приветственная страница Nginx:
Эта страница просто показывает вам, что сервер работает правильно.
Шаг 4: изучаем команды для управления Nginx
Теперь, когда веб-сервер запущен и работает, вы можете использовать следующие команды для управления Nginx.
Команда для остановки веб-сервера:
$ sudo systemctl stop nginx
Команда для запуска веб-сервера после того, как он был остановлен:
$ sudo systemctl start nginx
Команда для перезапуска (остановки и запуска) веб-сервера:
$ sudo systemctl restart nginx
Если вам необходимо, чтобы какие-то изменения вступили в силу, вы можете перезагружать Nginx без прерывания подключений. Для этого используйте следующую команду:
$ sudo systemctl reload nginx
По умолчанию Nginx запускается всегда, когда начинает работать сервер. Если вас не устраивает такое положение дел, вы можете отключить эту настройку следующей командой:
$ sudo systemctl disable nginx
Включить настройку автоматического запуска Nginx вместе с сервером можно так:
$ sudo systemctl enable nginx
Шаг 5: знакомимся с важными файлами и директориями Nginx
Теперь следует перейти к последнему шагу, который посвящен ознакомлению с некоторыми важными файлами и директориями Nginx.
Содержание
- /var/www/html: фактический веб-контент, который по умолчанию состоит только из приветственной страницы Nginx (вы видели ее ранее), находится в директории /var/www/html. Вы можете поменять это, изменив конфигурационные файлы Nginx.
Конфигурация сервера
- /etc/nginx: конфигурационная директория Nginx. Все файлы настроек Nginx находятся именно здесь.
- /etc/nginx/nginx.conf: основной конфигурационный файл Nginx. Используйте его, если хотите внести какие-либо изменения в общую конфигурацию Nginx.
- /etc/nginx/sites-available: в этой директории хранятся все серверные файлы для каждого сайта. Nginx не будет использовать конфигурационные файлы в этой директории до тех пор, пока они не связаны с директорией включенных сайтов (ее адрес ниже). Иными словами, в этой директории хранятся и изменяются все серверные настройки, которые вы можете включить, связав с другой директорией.
- /etc/nginx/sites-enabled/: эта директория, где находятся все включенные серверные файлы для каждого сайта. Обычно они создаются тогда, когда создается связь с конфигурационными файлами, которые находятся в директории sites-available.
- /etc/nginx/snippets: эта директория содержит конфигурационные фрагменты, которые могут быть включены в конфигурацию Nginx. Например, сюда можно добавить повторяемые конфигурационные сегменты.
Журнал сервера
- /var/log/nginx/access.log: в этом файле записываются все запросы к вашему веб-серверу (до тех пор, пока вы не измените это в настройках).
- /var/log/nginx/error.log: в этом файле записываются все ошибки Nginx.
Заключение
Теперь, когда веб-сервер установлен, у вас есть широкий выбор технологий, которые вы можете использовать для создания своего интернет-приложения.
Комментарии
sudo ufw allow 'Nginx HTTP'
далее
sudo ufw status
но статус пишет как неактивный
почему?