Nginx является одним из самых популярных веб-серверов в мире, его используют для хостинга самых больших и нагруженных сайтов в Интернете. Nginx в подавляющем большинстве случаев менее требователен к ресурсам, чем Apache; его можно использовать как в качестве веб-сервера, так и в качестве обратного прокси-сервера (reverse proxy).
В этой статье мы рассмотрим процесс установки Nginx на ваш сервер с Ubuntu 16.04.
Перед тем, как начать следовать описанным в этой статье шагам, убедитесь, что у вас есть обычный не-рутовый (non-root) пользователь с привилегиями sudo
. Узнать, как настроить такого пользователя на вашем сервере, можно из статьи о первичной настройке сервера на Ubuntu 16.04.
После того, как вы создали такого пользователя, зайдите на сервер используя его логин и пароль. Теперь вы готовы следовать шагам, описанным в этой статье.
Nginx доступен в стандартных репозиториях Ubuntu, поэтому его установка достаточно проста.
Поскольку мы собираемся использовать apt
в первый раз в ходе этой сессии, начнём с обновления локального списка пакетов. Далее установим сервер:
- sudo apt-get update
- sudo apt-get install nginx
В результате выполнения этих команд apt-get
установит Nginx и другие необходимые для его работы пакеты на ваш сервер.
Перед тем, как начать проверять работу Nginx, нам необходимо настроить наш файрвол для разрешения доступа к сервису. При установки Nginx регистрируется в сервисе файрвола ufw
. Поэтому настройка доступа осуществляется достаточно просто.
Для вывода настроек доступа для приложений, зарегистрированных в ufw
, введём команду:
- sudo ufw app list
В результате выполнения этой команды будет выведен список профилей приложений:
ВыводAvailable applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Как видно из этого вывода, для Nginx настроено три профиля:
Рекомендуется настраивать ufw
таким образом, чтобы разрешать только тот трафик, который вы хотите разрешить в явном виде. Поскольку мы ещё не настроили SSL для нашего сервера, в этой статье мы разрешим трафик только для порта 80.
Сделать это можно следующей командой:
- sudo ufw allow 'Nginx HTTP'
Вы можете проверить изменения введя команду:
- sudo ufw status
В результате должен отобразиться вывод следующего вида:
ВыводStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
После завершения процесса установки Ubuntu 16.04 запустит Nginx автоматически. Таким образом веб-сервер уже должен быть запущен.
Мы можем убедиться в этом выполнив следующую команду:
- 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 адреса сервера.
Если у вас ещё нет настроенного доменного имени для вашего сервера, вы можете узнать, как настроить домен в Digital Ocean из этой статьи.
Если вы не хотите настраивать доменное имя для вашего сервера, вы можете использовать публичный IP адрес вашего сервера. Если вы не знаете публичного IP адреса сервера, вы можете найти этот IP адрес следующей командой:
- ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
В результате будет выведено несколько IP адресов. Попробуйте вставить каждый из них в браузер.
Другим способом определить свой IP адрес будет проверка, как ваш сервер виден из Интернета:
- sudo apt-get install curl
- curl -4 icanhazip.com
Наберите полученный IP адрес или доменное имя в вашем веб-браузере. Вы должны увидеть страницу Nginx по умолчанию.
http://доменное_имя_или_IP_адрес
Если вы видите подобную страницу в своём браузере, вы успешно установили 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
Теперь, когда мы знаем основные команды для управления веб-сервером, ознакомимся с основными директориями и файлами.
/var/www/html
: веб-контент, который по умолчанию состоит только из тестовой страницы Nginx, которую мы видели ранее, находится в директории /var/www/html
. Путь к этой директории можно настроить в файлах конфигурации Nginx./etc/nginx
: директория конфигурации Nginx. Все файлы конфигурации Nginx находятся в этой директории./etc/nginx/nginx.conf
: основной файл конфигурации Nginx. Этот файл используется для внесения изменений в глобальную конфигурацию Nginx./etc/nginx/sites-available
: директория, в которой хранятся “серверные блоки” для каждого сайта (серверные блоки являются приблизительным аналогом виртуальных хостов в Apache). Nginx не будет использовать конфигурационные файлы в этой директории, если они не имеют соответствующих ссылок в директории sites-enabled
(см. ниже). Обычно все настройки серверного блока осуществляются в этой директории, а затем сайт активируется путём создания ссылки в другой директории./etc/nginx/sites-enabled/
: в этой директории хранятся серверные блоки для активированных сайтов. Обычно это достигается путём создания ссылок на конфигурационные профили сайтов, расположенные в директории sites-available
./etc/nginx/snippets
: в этой директории хранятся фрагменты конфигурации, которые можно использовать при конфигурации любых сайтов. Фрагменты конфигурации, которые потенциально могут быть использованы в нескольких файлах конфигурации, являются прекрасными кандидатами для создания этих сниппетов./var/log/nginx/access.log
: каждый запрос к вашему веб-серверу записывается в этот файл лога, если иное не задано настройками Nginx./var/log/nginx/error.log
: любые ошибки Nginx будут записываться в этот файл.Теперь, когда у вас есть установленный и настроенный веб-сервер, вы можете выбирать, какой контент отдавать пользователям, и какие другие технологии вы можете использовать в дополнение к веб-серверу.
Об использовании серверных блоков Nginx можно узнать подробнее в этой статье. Если вы хотите использовать более полный стек приложений, рекомендуем ознакомиться со статьёй о настройке стека LEMP на сервере с Ubuntu 16.04.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.