Введение
Nginx является одним из самых популярных веб-серверов в мире и отвечает за хостинг некоторых из крупнейших и наиболее посещаемых сайтов в Интернете. В большинстве случаев он более ресурсоемкий, чем Apache, и может использоваться как веб-сервер или обратный прокси-сервер.
В этом руководстве мы обсудим, как установить Nginx на вашем сервере Ubuntu 16.04.
Предпосылки
Прежде чем вы начнете это руководство, вы должны иметь обычного пользователя без полномочий root с привилегиями sudo
настроенными на вашем сервере. Вы можете узнать, как настроить обычную учетную запись пользователя, следуя нашему первоначальному руководству по настройке сервера для Ubuntu 16.04.
Когда у вас есть доступ к учетной записи, войдите в систему как пользователь без полномочий root.
Шаг 1. Установите Nginx
Nginx доступен в репозиториях Ubuntu по умолчанию, поэтому установка довольно проста.
Поскольку это наше первое взаимодействие с системой пакетов apt
в этом сеансе, мы обновим наш индекс локального пакета, чтобы иметь доступ к последним спискам пакетов. После этого мы можем установить nginx
:
sudo apt-get update sudo apt-get install nginx
После принятия процедуры, apt-get
установит Nginx и все необходимые зависимости на ваш сервер.
Шаг 2. Отрегулируйте межсетевой экран
Прежде чем мы сможем протестировать Nginx, нам нужно переконфигурировать наше программное обеспечение брандмауэра, чтобы предоставить доступ к сервису. Nginx регистрируется как сервис с ufw
, нашим брандмауэром, при установке. Это облегчает доступ к Nginx.
Мы можем перечислить конфигурации приложений, которые ufw
знает, набрав:
sudo ufw app list
Вы должны получить список профилей приложения:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Как вы можете видеть, для Nginx доступны три профиля:
- Nginx Full : этот профиль открывает порт 80 (обычный, незашифрованный веб-трафик), так и порт 443 (TLS / SSL-шифрованный трафик)
- Nginx HTTP : этот профиль открывает только порт 80 (обычный, незашифрованный веб-трафик)
- Nginx HTTPS : этот профиль открывает только порт 443 (TLS / SSL-шифрованный трафик)
Рекомендуется включить наиболее ограничивающий профиль, который будет по-прежнему разрешать сконфигурированный трафик. Поскольку мы еще не настроили 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. Веб-сервер должен быть запущен.
Мы можем проверить systemd
системы systemd
init, чтобы убедиться, что служба запущена, набрав:
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 2017-05-09 11:23:12 EDT; 1min 1s ago
Main PID: 18421 (nginx)
CGroup: /system.slice/nginx.service
+-18421 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
L-18422 nginx: worker process
Как вы видите выше, служба, похоже, успешно запущена. Однако лучший способ проверить это – фактически запросить страницу у Nginx.
Вы можете получить доступ к целевой странице Nginx по умолчанию, чтобы убедиться, что программное обеспечение работает правильно. Вы можете получить к нему доступ через ваше доменное имя или IP-адрес вашего сервера.
Если вы не хотите настроить имя домена для своего сервера, вы можете использовать общедоступный IP-адрес вашего сервера. Если вы не знаете IP-адрес вашего сервера, вы можете получить его несколькими способами из командной строки.
Попробуйте ввести это в командной строке вашего сервера:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Вы получите несколько строк. Вы можете попробовать каждый в своем веб-браузере, чтобы убедиться, что они работают.
Альтернативой является типизация, которая должна дать вам ваш публичный IP-адрес, как видно из другого места в Интернете:
sudo apt-get install curl curl -4 andreyex.ru
Когда у вас есть IP-адрес или домен вашего сервера, введите его в адресную строку вашего браузера:
http://server_domain_or_IP
Вы должны увидеть целевую страницу Nginx по умолчанию, которая должна выглядеть примерно так:
Эта страница просто включена в Nginx, чтобы показать вам, что сервер работает правильно.
Шаг 4. Управление процессом 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
Теперь, когда вы знаете, как управлять самой службой, вы должны уделить несколько минут, чтобы ознакомиться с несколькими важными каталогами и файлами.
Содержание
/var/www/html
. Фактический веб-контент, который по умолчанию состоит только из страницы Nginx по умолчанию, которую вы видели ранее, обслуживается из/var/www/html
. Это можно изменить, изменив конфигурационные файлы Nginx.
Конфигурация сервера
/etc/nginx
Etc/etc/nginx
: Каталог конфигурации nginx. Здесь находятся все конфигурационные файлы Nginx./etc/nginx/nginx.conf
: Основной файл конфигурации Nginx. Его можно изменить, чтобы внести изменения в глобальную конфигурацию Nginx./etc/nginx/sites-available
: каталог, в котором могут храниться «серверные блоки» для каждого сайта. Nginx не будет использовать конфигурационные файлы, найденные в этом каталоге, если они не связаны с каталогом с включенными сайтами (см. Ниже). Как правило, вся конфигурация серверного блока выполняется в этом каталоге, а затем включается путем привязки к другому каталогу./etc/nginx/sites-enabled/
Etc/etc/nginx/sites-enabled/
: каталог, в котором хранятся разрешенные «серверные блоки» для каждого сайта. Как правило, они создаются путем связывания с конфигурационными файлами, находящимися в каталоге, доступном дляsites-available
./etc/nginx/snippets
Etc/etc/nginx/snippets
. Этот каталог содержит фрагменты конфигурации, которые могут быть включены в конфигурацию Nginx. Потенциально повторяемые сегменты конфигурации являются хорошими кандидатами для рефакторинга в фрагменты.
Журналы серверов
/var/log/nginx/access.log
: каждый запрос на ваш веб-сервер сохраняется в файл журнала/var/log/nginx/access.log
, если только Nginx не настроен иначе./var/log/nginx/error.log
: Любые ошибки Nginx будут сохраняться в журнал/var/log/nginx/error.log
.
Вывод
Теперь, когда у вас установлен веб-сервер, у вас есть много вариантов типа контента и технологий, которые вы хотите использовать для создания более богатого опыта.
Узнайте, как использовать серверные блоки Nginx. Если вы хотите построить более полный стек приложений, ознакомьтесь с этой статьей о том, как настроить стек LEMP на Ubuntu 16.04.