Nginx – один из самых популярных веб-серверов в мире, позволяющий размещать очень объемные сайты с высоким трафиком. Он, как правило, расходует меньше ресурсов, чем Apache. Также его можно использовать в качестве обратного прокси-сервера.
Данное руководство поможет установить Nginx на сервер Ubuntu 16.04.
Требования
- Сервер Ubuntu 16.04.
- Не-root пользователь с доступом к команде sudo (об этом – в руководстве по начальной настройке сервера).
1: Установка Nginx
Пакет Nginx доступен в стандартном репозитории системы Ubuntu.
Поскольку это первое взаимодействие с системой пакетирования apt в текущей сессии, нужно обновить индекс пакетов. После этого можно установить Nginx.
sudo apt-get update
sudo apt-get install nginx
После этого пакетный менеджер установит веб-сервер и все его зависимости.
2: Настройка брандмауэра
Прежде чем запустить Nginx, нужно настроить брандмауэр для поддержки трафика этого сервиса. Во время установки Nginx регистрируется как сервис в ufw, потому разрешить трафик веб-сервера очень просто.
Откройте список настроек приложений ufw:
sudo ufw app list
Команда вернёт:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Как видите, в списке есть три профиля Nginx:
- Nginx Full: этот профиль открывает порт 80 (незашифрованный сетевой трафик) и 443 (зашифрованный трафик TLS/SSL).
- Nginx HTTP: профиль для незашифрованного трафика HTTP на порт 80.
- Nginx HTTPS: профиль для зашифрованного трафика TLS/SSL на порт 443.
Рекомендуется выбрать наиболее строгий профиль веб-сервера. Однако, поскольку на сервере ещё не настроен SSL, мы можем настроить только порт 80.
Чтобы включить профиль, введите:
sudo ufw allow 'Nginx HTTP'
Убедитесь в том, что профиль включен:
sudo ufw status
Команда должна сообщить, что трафик HTTP разрешен:
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 автоматически. На данный момент веб-сервер должен запуститься и работать.
Чтобы убедиться в том, что Nginx запущен, запросите его состояние в системе инициализации systemd.
systemctl status nginx
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-04-18 16:14:00 EDT; 4min 2s ago
Main PID: 12857 (nginx)
CGroup: /system.slice/nginx.service
├─12857 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
└─12858 nginx: worker process
Как видите, сервис успешно запущен.
Также можно попробовать посетить стандартную посадочную страницу Nginx. Она доступна в браузере по доменному имени или IP-адресу.
Если вы не знаете своего IP-адреса, вы можете узнать его с помощью командной строки. Введите:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Команда вернёт несколько строк. Проверьте каждый адрес в браузере.
Также можно узнать, как видят ваш IP-адрес другие точки в сети.
sudo apt-get install curl
curl -4 icanhazip.com
Узнав вой IP, введите его в браузер, чтобы убедиться, что веб-сервер работает должным образом.
http://server_domain_or_IP
На экране должна появиться стандартная посадочная страница Nginx:
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
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
Чтобы возобновить автозапуск сервиса, введите:
sudo systemctl enable nginx
5: Файлы и каталоги Nginx
Теперь вы знаете, как управлять сервисом. Пора ознакомиться с важными файлами и каталогами Nginx.
Контент
- /var/www/htm: этот каталог содержит текущий контент сайта. По умолчанию в нём находится только стандартная посадочная страница, которую вы уже видели. Этот каталог можно изменить в конфигурационном файле Nginx.
Настройки сервера
- /etc/nginx: каталог настроек nginx, в котором хранятся все конфигурационные файлы.
- /etc/nginx/nginx.conf: главный конфигурационный файл Nginx, содержащий глобальные настройки веб-сервера.
- /etc/nginx/sites-available: каталог, хранящий настроенные блоки server (виртуальные хосты) каждого отдельного сайта. Nginx не будет использовать эти блоки, пока ссылка на них не появится в каталоге sites-enabled (о нём речь пойдёт дальше). Как правило, этот каталог используется для настройки виртуальных хостов.
- /etc/nginx/sites-enabled/: каталог, хранящий включенные блоки server. Чтобы включить блок, нужно создать символьную ссылку на файл, хранящийся в каталоге sites-available.
- /etc/nginx/snippets: этот каталог хранит фрагменты настроек, которые можно включить в конфигурацию Nginx. Как правило, в качестве фрагментов добавляют потенциально повторяемые сегменты конфигурации.
Логи
- /var/log/nginx/access.log: этот лог регистрирует все запросы, полученные веб-сервером Nginx (если не настроено другое поведение).
- /var/log/nginx/error.log: этот лог хранит все сообщения об ошибках Nginx.
Заключение
Теперь веб-сервер Nginx установлен и готов к работе. Используйте его для обслуживания контента вашего сайта.
Научиться создавать блоки server можно здесь. Чтобы установить более сложный программный стек для поддержки сайта, читайте руководство по установке LEMP.