УСТАНОВКА NGINX В UBUNTU 18.04

Nginx – один из самых популярных веб-серверов в мире, позволяющий размещать очень объемные сайты с высоким трафиком. Он, как правило, расходует меньше ресурсов, чем Apache. Также его можно использовать в качестве обратного прокси-сервера.

Данный мануал поможет установить Nginx на сервер Ubuntu 18.04.

Требования

Для работы нужен сервер Ubuntu 18.04, настроенный согласно этому мануалу.

1: Установка Nginx

Пакет Nginx доступен в стандартном репозитории системы Ubuntu.

Поскольку это первое взаимодействие с системой пакетирования apt в текущей сессии, нужно обновить индекс пакетов. После этого можно установить Nginx.

sudo apt update<br>sudo apt install nginx

После этого пакетный менеджер установит веб-сервер и все его зависимости.

2: Настройка брандмауэра

Прежде чем запустить Nginx, нужно настроить брандмауэр для поддержки трафика этого сервиса. Во время установки Nginx регистрируется как сервис в ufw, потому разрешить трафик веб-сервера очень просто.

Откройте список профилей ufw:

sudo ufw app list<br>Available applications:<br>Nginx Full<br>Nginx HTTP<br>Nginx HTTPS<br>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<br>To  Action  From<br>--  ------   ----<br>OpenSSH  ALLOW  Anywhere<br>Nginx HTTP  ALLOW  Anywhere<br>OpenSSH (v6)  ALLOW  Anywhere (v6)<br>Nginx HTTP (v6)  ALLOW  Anywhere (v6)

3: Тестирование веб-сервера

После установки Ubuntu 18.04 запустит Nginx автоматически. На данный момент веб-сервер должен запуститься и работать.

Чтобы убедиться в том, что Nginx запущен, запросите его состояние в системе инициализации systemd.

systemctl status nginx<br>nginx.service - A high performance web server and a reverse proxy server<br>Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)<br>Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago<br>Docs: man:nginx(8)<br>Main PID: 2369 (nginx)<br>Tasks: 2 (limit: 1153)<br>CGroup: /system.slice/nginx.service<br>├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;<br>└─2380 nginx: worker process

Как видите, сервис успешно запущен.

Также можно попробовать посетить стандартную посадочную страницу Nginx. Она доступна в браузере по доменному имени или IP-адресу.

Если вы не знаете своего IP-адреса, вы можете узнать его с помощью командной строки. Введите:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Команда вернёт несколько строк. Проверьте каждый адрес в браузере.

Также можно узнать, как видят ваш IP-адрес другие точки в сети.

curl -4 icanhazip.com

Узнав свой IP, введите его в браузер, чтобы убедиться, что веб-сервер работает должным образом.

http://server_domain_or_IP

На экране должна появиться стандартная посадочная страница Nginx:

Welcome to nginx!<br>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 вы можете использовать виртуальные хосты (также они называются блоками server) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь используется условный домен example.com, но вы должны заменить его собственным доменом.

Nginx в Ubuntu 18.04 по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для обслуживания одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в /var/www для сайта example.com, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.

Создайте каталог example.com, используя флаг -p для создания всех необходимых родительских каталогов:

sudo mkdir -p /var/www/example.com/html

Затем определите права на каталог с помощью переменной $USER:

sudo chown -R $USER:$USER /var/www/example.com/html

Права должны быть установлены верно, если вы не меняли unmask, но на всякий случай вы можете их проверить:

sudo chmod -R 755 /var/www/example.com

Затем создайте образец страницы index.html с помощью nano или другого редактора:

nano /var/www/example.com/html/index.html

Вставьте в файл:

<html><br><head><br><title>Welcome to Example.com!</title><br></head><br><body><br><h1>Success!  The example.com server block is working!</h1><br></body><br></html>

Сохраните и закройте файл.

Чтобы Nginx мог обслуживать этот контент, необходимо создать файл виртуального хоста с правильными директивами. Вместо того чтобы напрямую изменять файл конфигурации по умолчанию, создайте новый файл /etc/nginx/sites-available/example.com.

sudo nano /etc/nginx/sites-available/example.com

Вставьте в файл следующие конфигурации. Они похожи на конфигурации по умолчанию, но содержат правильный домен и каталог:

server {<br>listen 80;<br>listen [::]:80;<br>root /var/www/example.com/html;<br>index index.html index.htm index.nginx-debian.html;<br>server_name example.com www.example.com;<br>location / {<br>try_files $uri $uri/ =404;<br>}<br>}

Обратите внимание, что root содержит путь нового каталога, а server_name – новый домен, example.com.

Сохраните и закройте файл.

Включите файл, создав симлинк в каталоге sites-enabled:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Теперь у вас есть два виртуальных хоста, которые будут обслуживать запросы клиентов на основе директив listen и server_name:

  • example.com будет обслуживать запросы для www.example.com и example.com.
  • default будет отвечать на запросы по порту 80, если они не соответствуют остальным виртуальным хостам.

Читайте также: Алгоритмы выбора блоков server и location в Nginx

Чтобы избежать возможных проблем с памятью, которые могут возникнуть в результате добавления дополнительных имен серверов, необходимо отредактировать одно значение в файле /etc/nginx/nginx.conf. Откройте файл:

sudo nano /etc/nginx/nginx.conf

Найдите строку server_names_hash_bucket_size и раскомментируйте ее, удалив символ #:

...<br>http {<br>...<br>server_names_hash_bucket_size 64;<br>...<br>}<br>...

Проверьте ошибки в конфигурации Nginx:

sudo nginx -t

Сохраните и закройте файл.

Перезапустите Nginx, чтобы активировать новые параметры:

sudo systemctl restart nginx

Теперь Nginx обслуживает домен вашего сайта. Чтобы убедиться в этом, откройте ссылку example.com.

6: Важные файлы и каталоги 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 установлен и готов к работе. Используйте его для обслуживания контента вашего сайта. Чтобы установить более сложный программный стек для поддержки сайта, читайте руководство по установке LEMP.

04:01
1089
Set
RSS
Нет комментариев. Ваш будет первым!

Похожий контент

Apache и Nginx– популярные веб-серверы с открытым исходным кодом, которые часто использу...
HTTP-сервер Apache – самый популярный веб-сервер. Он предоставляет множество производите...
В этом руководстве показана установка сервера веб-хостинга Ubuntu 20.04 (Focal Fossa) с ...
Команды в этом учебнике должны выполняться с правами root. Чтобы избежать добавления sud...