Bfsoft.ru

Программы, сервисы, полезные советы о компьютере и интернете
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как установить и настроить Nginx на Ubuntu

Установка Nginx Ubuntu

На данный момент самую большую популярность набрали два веб-сервера. Это Apache и Ngnix. У каждого из них есть свои плюсы и минусы. Apache был разработан еще в 1995 году и при его разработке учитывались не все возможные потребности пользователей, он потребляет много памяти и ресурсов системы, зато он прост в настройке. Nginx был разработан чуть позже в 2002 году уже учитывая ошибки Apache и ориентируясь на максимальную производительность.

Мы не будем подробно вникать в плюсы и минусы этих обоих веб-серверов. У каждого из них своя область применения. В этой инструкции будет рассмотрена установка Nginx в Ubuntu. Хотя я буду говорить об Ubuntu, все действия подойдут и для других дистрибутивов. Настройка Nginx везде одинакова, только команда установки отличается.

Установка компонентов

Первым делом нужно установить сам веб-сервер в систему. Программа есть в официальных репозиториях, но ее версия уже немного устарела, поэтому если хотите самую новую версию, нужно добавить PPA:

sudo apt-add-repository ppa:nginx/stable

Сейчас в официальных репозиториях доступна версия 1.10.0, а в стабильной PPA уже доступна 1.10.1. Если для вас версия не нужна можно обойтись и без PPA. Дальше обновите списки пакетов из репозиториев:

sudo apt update

И устанавливаем ngnix:

sudo apt install nginx

nginx

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

sudo systemctl enable nginx

Если вы уже сейчас откроете браузер, то увидите работающий nginx, но нам предстоит его еще настроить.

nginx1

Настройка Nginx Ubuntu

Настройка Nginx Ubuntu намного сложнее чем Apache. Здесь мы не будем рассматривать все опции и возможности программы, а поговорим только об основном. Есть различные конфигурации, в которых Nginx используется в качестве прокси сервера, а основной сервер Apache, но нас это интересовать не будет. Нам нужна установка Nginx как самостоятельного веб-сервера.

Настройки Nginx сильно отличаются здесь есть только один основной файл конфигурации и файлы для виртуальных хостов. Настройка из каждой директории, как в Apache не поддерживается.

  • /etc/nginx/nginx.conf — главный файл конфигурации
  • /etc/nginx/sites-available/* — файлы конфигурации для виртуальных хостов, проще говоря для каждого сайта.
  • /etc/nginx/sites-enabled/* — файлы конфигурации активированных сайтов.

На самом деле файлы конфигурации для виртуальных хостов читаются только из директории sites-enabled, но здесь содержаться ссылки на sites-available. Такая система была придумана, чтобы дать возможность отключать на время те или иные сайты, не стирая их конфигурацию. Все остальные файлы содержат только объявления переменных и стандартные настройки, которые изменять не нужно. Что же касается nginx.conf, то в него включаются все файлы из sites-enables, а поэтому они могут содержать все точно такие же инструкции. А теперь давайте рассмотрим главный файл конфигурации:

sudo vi /etc/nginx/nginx.conf

nginx2

Как видите файл разделен на секции. Общая структура такова:

глобальные опции
events <>
http <
server <
location<>
>
server <>
>
mail <>

  • глобальные опции отвечают за работу всей программы.
  • events — эта секция содержит настройки для работы с сетью.
  • http — содержит настройки веб-сервера. Должна содержать секцию servier для тонкой настройки каждого сайта.
  • server — в этой секции содержится настройка каждого размещенного на веб-сервере сайта.
  • location — секция location может находиться только внутри секции server и содержит настройки только для определенного запроса.
  • mail — содержит настройки почтового прокси.

Перед тем как перейти к опциям, нужно сказать еще пару слов о синтаксисе строки в конфигурационном файле. Он выглядит вот так:

параметр значение дополнительное_значение. ;

Строка должна обязательно заканчиваться «;», а все открытые скобки < должны быть закрыты.

Теперь, когда вы немного изучили глобальную структуру, можно переходить к рассмотрению самих параметров. Глобальных опций не так уж много:

  • user — пользователь, от имени которого будет работать программа.
  • worker_processes — устанавливает сколько процессов нужно запускать для параллелизации работы программы, нужно запускать не больше процессов, чем у вас есть ядер. Можно установить параметр auto и тогда программа определит это число сама.
  • pid = файл pid программы.
  • worker_rlimit_nofile — указывает максимальное количество файлов, которые может открыть программа. Рассчитывается как worker_processes * worker_connections* 2.

С глобальными опциями закончили, их было не так много и они не такие интереснее. Куда интереснее в плане оптимизации опции с секции events:

  • worker_connections — количество соединений, которые программа может обрабатывать одновременно на одном процессе. Если умножить worker_process на этот параметр, то мы получим максимальное количество пользователей, которые могут подключиться к серверу одновременно. Рекомендуется устанавливать значение от 1024 до 4048.
  • multi_accept — разрешить принимать много подключений одновременно, установите параметр on или off.
  • use — способ работы с сетевым стеком. По умолчанию используется poll, но для Linux эффективнее использовать epoll.
Читайте так же:
Как исправить ошибку 0xc000014c в Windows

Дальше переходим самой главной секции — http. Здесь опций намного больше:

  • sendfile — использовать метод отправки данных sendfile. Значение on.
  • tcp_nodelay, tcp_nopush — отправлять заголовки и начало файла одним пакетом. Значение on.
  • keepalive_timeout — таймаут ожидания, перед тем как keepalive соединение будет разорвано, по умолчанию 65, но можно уменьшить до 10 секунд.
  • keepalive_requests — максимальное количество keepalive соединений от одного клиента, рекомендовано 100.
  • reset_timedout_connection — разрывать соединения после таймаута. Значение on.
  • open_file_cache — кэшировать информацию об открытых файлах. Строчка настройки выглядит вот так: open_file_cache max=200000 inactive=20s; max — максимальное количество файлов в кэше, время кэширования.
  • open_file_cache_valid — указывает по истечении какого времени нужно удалить информацию из кэша. Например: open_file_cache_valid 30s;
  • open_file_cache_min_uses — кэшировать информацию о файлах, которые были открыты как минимум указанное количество раз.
  • open_file_cache_errors — кэшировать информацию об отсутствующих файлах, значение on.

Основные параметры рассмотрели. Эти настройки помогут вам получить большую производительность от nginx. Секцию server и location мы рассмотрим в настройке виртуальных хостов.

Настройка сжатия Gzip

Сжатие контента необходимо, чтобы уменьшить размер загружаемых браузером данных. Это ускоряет загрузку сайта, но добавляет дополнительную нагрузку на процессор сервера. Чтобы включить сжатие в секции http нужно добавить параметр:

gzip on

Эту директиву можно использовать также в секции server, тогда она будет работать только для указного виртуального домена. Дальше настраиваем параметры сжатия настраиваются с помощью следующих опций:

  • gzip_min_length — минимальная длина страницы в байтах, при которой нужно использовать сжатие, например, 1000 (1 кб)
  • gzip_proxied — нужно ли сжимать проксированые запросы, any говорит, что нужно сжимать все.
  • gzip_types — типы файлов, которые нужно сжимать, например: text/plain application/xml application/x-javascript text/javascript text/css text/json;
  • gzip_disable «msie6» — в IE 6 сжатие не поддерживается, поэтому отключаем.
  • gzip_comp_level — уровень сжатия, доступны варианты от 1 до 10. 1 — минимальное, 10 — максимальное сжатие.

Настройка виртуальных хостов

Как вы знаете, на сервере может размещаться несколько сайтов. Все запросы приходят на ip сервера, а nginx уже определяет на основе домена какой контент нужно выдать. Для того чтобы nginx знал что к какому домену относится нужно настроить виртуальные хосты. Каждый хост принято размещать в отдельном файле. Настройка хоста находится в секции server, но поскольку все файлы из sites-enabled импортируются в секцию http, то логика структуры конфигурационного файла не нарушается.

Рассмотрим пример настройки:

nginx3

  • listen 80 — указывает, что нужно ожидать подключения на порту 80, может также содержать опцию default-server, которая означает, что этот домен будет открывается если домен не был задан в запросе.
  • root /var/www/html — директория, в которой находятся файлы сайта.
  • index index.html — страница, которая будет открываться по умолчанию.
  • server_name — доменное имя сайта.
  • access_log — файл для записи лога запросов к серверу, может использоваться как глобально в секции http, так и для определенного типа файлов в location.
  • error_log — лог ошибок веб-сервера, может принимать дополнительный параметр, указывающий подробность лога. warn — максимум, crit — только критические ошибки.

Это все основные настройки виртуального хоста, после них он уже будет работать. Но тут есть еще секция location, которая позволяет настроить поведение сервера для определенных директорий и файлов. Синтаксис location такой:

location адрес <>

В качестве адреса может использоваться как прямой запрос относительно корня сервера, так и регулярные выражения. Для использования регулярных выражений перед ним ставится символ «

«. Примеры рассмотрим ниже, а пока рассмотрим возможные директивы:

  • allow — разрешить доступ к местоположению для пользователей, all — всех, также можно указать ip или подсеть.
  • deny — запретить доступ к местоположению, all — для всех.
  • try-files — пытается открыть файлы в определенном порядке, открывает первый обнаруженный файл. Например, такая конструкция: $uri $uri/index.html $uri.html =404; сначала пытается открыть $uri, затем index.html, если не найден $uri.html, и аж потом, если ни одного из предложных файлов не существует, выдает ошибку 404.
  • expires — задает время кэширования браузером отданного элемента, например, 1d — один день, 2h — два часа, 30s — 30 секунд.

Кроме этих главных директив, здесь могут использоваться и другие. Чтобы получить больше подробностей, смотрите официальную документацию. Рассмотрим пару примеров:

Не выполнять логирование для favicon:

location = /favicon.ico <
log_not_found off;
access_log off;
>

Запретить доступ к файлам, начинающимся с точки:

Кэшировать обычные файлы на 90 дней:

* ^.+.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ <
access_log off; log_not_found off; expires 90d;
>

После того, как установка и настройка nginx будет завершена проверяем конфигурацию на ошибки:

Затем перезагружаем сервер:

sudo service nginx reload

sudo service nginx restart

Если изменялись незначительные параметры можно использовать reload, тогда будет просто обновлена конфигурация без перезагрузки, если же изменяли глобальные опции, нужно перезагрузить программу полностью с помощью restart.

Читайте так же:
Как установить Jailbreak на устройства с iOS 12

Просмотр статистики

Просмотр статистики работы веб-сервера очень важен. Установка nginx, должна содержать настройку возможности получения статистики. Для того чтобы это сделать добавьте такие строки к вашему хосту в секцию server:

location /basic-staus <
stats_stub;
allow 127.0.0.1
deny all;
>

Статистика будет доступна только с локального ip:

wget localhost/basic-status -O —

Выводы

Установка Nginx Ubuntu 16.04 завершена и теперь вы немного представляете как его настроить. Конечно, есть еще много вещей, которые мы не упомянули в статье, например, настройка обработки динамического контента php или настройка nginx Ubuntu в качестве прокси-сервера для apache. Возможно, это будет рассмотрено в следующих статях.

Установка и настройка Nginx на Ubuntu 18.04

Nginx – простой и надежный веб-сервер, на котором можно размещать сложные интернет-проекты с высоким трафиком, а также использовать его в качестве обратного прокси.

Как производится настройка Nginx подробно разберем на примере популярной ОС семейства Linux — Ubuntu версии 18.04. Также опишем особенности предыдущей LTS (Long Term Support) версии Ubuntu 16.04.

Что нужно для установки

Для инсталляции на Ubuntu 18.04 понадобится: установленная операционная система, имеющая статический IP-адрес, с доступом в интернет. Также желательно, чтобы файрвол UFW был включен.

Подготовка

Перед началом установки Nginx заходим в ОС под пользователем root, и создаем новый аккаунт с расширенными привилегиями sudo.

Вводим следующую команду*:

* Здесь «host» – имя пользователя, под которым будем работать.

Далее вбиваем свою информацию об аккаунте или принимаем настройки по умолчанию, нажав «Enter».

Настройка доступа в учетную запись созданного пользователя зависит от того, какая используется root-аутентификация. Это может быть просто пароль, либо же SSH-ключи.

Если вход выполняется под паролем, то подключиться к новому пользователю можно по SSH*:

*IP сервера в примере ( 194.61.0.6 ) следует заменить на актуальный.

Когда вход в учетную запись осуществляется при помощи SSH-ключей, тогда их необходимо скопировать в созданный аккаунт. Для этого нужно следовать следующему алгоритму:

  1. Открыть терминал и ввести команду:
  1. Добавить созданного пользователя в группу sudo:
  1. Авторизоваться под новым пользователем.

Как установить Nginx на Ubuntu

Инсталляцию будем выполнять прямо из репозитория Ubuntu, посредством пакетного менеджера apt:

По завершению исполнения команд, обновление и установка Nginx на сервере будет окончена.

Настройка UFW

Перед предоставлением доступа к сервису, следует настроить файрвол.

Для просмотра приложений, с которыми будет взаимодействовать UFW, вводим следующую команду:

Будет выведена следующая информация:

Установка и настройка Nginx на Ubuntu

Это означает, что UFW может работать с тремя вариантами протоколов веб-сервера:

  1. Full – открыты два порта (80 и 443).
  2. HTTP – открыт только 80 порт.
  3. HTTPS – открывается только 443 порт.

Пока не настроен SSL протокол, открываем 80 порт. Вводим команды:

Чтобы не потерять доступ по SSH, вводим команду:

Будет выведено предупреждение:

Нужно согласиться (нажать «y»).

На экране будет выведено:

HTTP протокол открыт.

Тестирование Nginx

После завершения инсталляции веб-сервера, Ubuntu запустит его автоматически.

Чтобы проверить, что он работает, нужно ввести команду:

В случае успешного запуска службы, на экране должно отобразиться:

Установка и настройка Nginx на Ubuntu

Для того, чтобы полностью в этом убедиться, выполним запрос начальной страницы Nginx. Нужно ввести доменное имя или IP-адрес сервера в строке браузера.

Если IP-адрес неизвестен, существует несколько способов его выяснить.

В терминале набираем команду:

Отобразится несколько IP-адресов. По очереди их необходимо будет вставить в браузер, пока не отобразится страница приветствия Nginx.

Другой метод проверки видимости сервера в интернете:

Полученный адрес следует, также прописать в браузере, чтобы увидеть стартовую страницу веб-сервера.

Она будет выглядеть вот так:

Установка и настройка Nginx на Ubuntu

Команды управления Nginx-сервером

Чтобы остановить web-сервер, вводим:

Для старта используем команду:

Для перезапуска Nginx после остановки, вводим:

Во время загрузки Ubuntu, сервер Nginx стартует автоматически по умолчанию. Отключить запуск по умолчанию можно следующим образом:

Чтобы при внесении изменений в конфигурации веб-сервера, его можно было перезагрузить, не теряя соединений. Для этого вводим команду:

Для возобновления запуска Nginx при старте вводим:

Настройка виртуального хоста

На Nginx можно использовать серверные блоки для обслуживания нескольких доменов. Изначально у этого веб-сервера включен один виртуальный хост. Его файлы находятся в каталоге /var/www/html . Однако, это неудобно при размещении нескольких сайтов.

Чтобы это исправить в директории /var/www/ создадим каталог. В данном примере будем использовать условный домен «exemple.com», который нужно будет заменить своим доменом.

Начнем с создания каталога:

При помощи переменной $USER определим права каталога:

Далее создадим пример страницы index.html:

Вставим следующий код в файл:

Затем создадим каталог – «sites-available» (директория, в которой хранятся серверные блоки):

Впишем в него код, указав свой каталог и домен:

Читайте так же:
Как исправить ошибку «Error loading operating system»

После этого создадим ссылку в каталоге «sites-enabled» (директория, в которой находятся, все настройки хоста), чтобы файл стал доступен:

Теперь настроены, и задействованы два виртуальных хоста. По умолчанию запросы, поступившие на 80 порт будут обрабатываться первым хостом, если они не соответствуют «www.example.com» или «example.com».

Для предотвращения различных сбоев с памятью, из-за дополнительных серверных имен, отредактируем файл nginx.conf .

В открывшемся файле ищем строку:

Убираем символ «#», сохраняем и закрываем.

Теперь выполним проверку файлов Nginx на отсутствие синтаксических ошибок:

Чтобы изменения вступили в силу, перезапускаем Nginx:

Для проверки корректной работы домена введем в браузере ссылку «http://example.com». Если все настройки выполнены правильно, мы увидим следующую надпись:

Установка и настройка Nginx на Ubuntu

Ошибки, которые будут возникать в процессе работы сервера Nginx, можно посмотреть в файле error.log .

Все запросы, поступающие к вашему web-серверу, будут записываться в файле access.log .

Установка NGINX в UBUNTU 20.04

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

Данный мануал поможет установить Nginx на сервер Ubuntu 20.04. также вы узнаете, как разблокировать трафик Nginx в брандмауэре, управлять этим сервисом и настроить блок server (аналог виртуального хоста).

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

Пакет Nginx можно найти в стандартном репозитории Ubuntu и установить с помощью пакетного менеджера apt.

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

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

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

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

Откройте список доступных профилей ufw:

В этом списке вы найдете три профиля Nginx:

  • Nginx Full: открывает порт 80 (незашифрованный сетевой трафик) и 443 (зашифрованный трафик TLS/SSL).
  • Nginx HTTP: открывает незашифрованный трафик HTTP на порт 80.
  • Nginx HTTPS: для зашифрованного трафика TLS/SSL на порт 443.

Лучше использовать профиль, который поддерживает шифрование. Но поскольку на свежем сервере ещё не настроен SSL, мы можем открыть только порт 80.

Чтобы включить соответствующий профиль, введите:

Убедитесь в том, что профиль включился:

Команда должна показать, что трафик HTTP разблокирован:

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

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

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

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

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

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

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

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

4: Управление процессами Nginx

Теперь давайте рассмотрим несколько базовых команд для управления сервисом Nginx.

Чтобы остановить Nginx, введите:

Чтобы запустить его, введите:

Для перезапуска веб-сервера используйте команду:

Чтобы обновить настройки Nginx, не сбрасывая соединения, введите команду:

По умолчанию Nginx автоматически запускается во время загрузки сервера. Это поведение можно отключить:

Чтобы возобновить автозапуск сервиса, введите:

5: Настройка виртуального хоста

На веб-сервере Nginx можно использовать виртуальные хосты (в контексте Nginx они называются блоками server) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь мы используем условный домен your_domain.com, но вы должны заменить его собственным доменом.

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

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

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

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

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

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

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

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

Читайте так же:
Как исправить ошибку «Сбой запроса дескриптора USB-устройства»

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

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

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

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

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

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

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

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

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

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

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

6: Важные файлы и каталоги Nginx

Теперь вы знаете, как управлять сервисом. Пора познакомиться с важными файлами и каталогами веб-сервера Nginx.

Установка Nginx в Ubuntu 20.04

Nginx — один из самых популярных в мире веб-серверов, на базе которого размещены некоторые из самых крупных сайтов интернета с огромным трафиком. Это облегченный вариант, который можно использовать как веб-сервер или как обратный прокси.

В этом руководстве мы расскажем, как установить Nginx на вашем сервере Ubuntu 20.04, настроить брандмауэр, управлять процессом Nginx и создать блоки сервера для хостинга более одного домена с одного сервера.

Предварительные требования

Прежде чем начать прохождение настоящего обучающего модуля, необходимо настроить на сервере обычного пользователя без прав root с привилегиями sudo. Информацию о том, как настроить стандартную учетную запись пользователя, можно найти в руководстве Начальная настройка сервера для Ubuntu 20.04​​​.

Создав учетную запись, войдите в систему как пользователь без прав root.

Шаг 1 — Установка Nginx

Поскольку Nginx доступен в репозиториях Ubuntu по умолчанию, его можно установить из этих репозиториев с помощью системы пакетов apt .

Так как это первое наше взаимодействие с системой пакетов apt в этом сеансе, мы также обновим индекс локальных пакетов, чтобы получить доступ к актуальным спискам пакетов. Затем мы можем выполнить установку nginx :

После принятия процедуры apt выполнит установку Nginx и других требуемых зависимостей на ваш сервер.

Шаг 2 — Настройка брандмауэра

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

Для вывода списка конфигураций приложений, которые известны ufw , необходимо ввести следующую команду:

Необходимо получить список профилей приложений:

Как показал вывод, есть три профиля, доступных для Nginx:

  • Nginx Full: этот профиль открывает порт 80 (обычный веб-трафик без шифрования) и порт 443 (трафик с шифрованием TLS/SSL)
  • Nginx HTTP: этот профиль открывает только порт 80 (обычный веб-трафик без шифрования)
  • Nginx HTTPS: этот профиль открывает только порт 443 (трафик с шифрованием TLS/SSL)

Рекомендуется применять самый ограничивающий профиль, который будет разрешать заданный трафик. Сейчас нам нужно будет разрешить трафик на порту 80.

Для активации можно ввести следующую команду:

Для проверки изменений введите:

Вывод укажет, какой трафик HTTP разрешен:

Шаг 3 — Проверка веб-сервера

В конце процесса установки Ubuntu 20.04 запускает Nginx. Веб-сервер уже должен быть запущен и работать.

Используйте команду systemd init system, чтобы проверить работу службы:

Вывод подтвердили, что служба успешно запущена. Однако лучше всего протестировать ее запуск посредством запроса страницы из Nginx.

Откройте страницу Nginx по умолчанию, чтобы подтвердить работу программного обеспечения через IP-адрес вашего сервера. Если вы не знаете IP-адрес вашего сервера, вы можете найти его с помощью инструмента icanhazip.com, который выдаст вам ваш публичный IP-адрес, полученный от другого расположения в Интернете:

Когда вы узнаете IP-адрес вашего сервера, введите его в адресную строку браузера:

Вы должны получить начальную страницу Nginx по умолчанию:

Страница Nginx по умолчанию

Если вы находитесь на этой странице, ваш сервер работает корректно и готов к управлению.

Шаг 4 — Управление процессом Nginx

Ваш веб-сервер запущен и работает, и теперь мы изучим некоторые базовые команды управления.

Чтобы остановить веб-сервер, введите:

Чтобы запустить остановленный веб-сервер, введите:

Чтобы остановить и снова запустить службу, введите:

Если вы просто вносите изменения в конфигурацию, во многих случаях Nginx может перезагружаться без отключения соединений. Для этого введите:

По умолчанию Nginx настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, вы можете отключить такое поведение с помощью следующей команды:

Чтобы перезагрузить службу для запуска во время загрузки, введите:

Вы научились выполнять базовые команды управления и должны быть готовы настроить сайт для размещения сразу нескольких доменов.

Читайте так же:
Как установить Linux вместе с Windows на одном компьютере

Шаг 5 — Настройка блоков сервера (рекомендуется)

При использовании веб-сервера Nginx вы можете использовать блоки сервера (аналогичные виртуальным хостам в Apache) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы создадим домен your_domain, но вы должны заменить это имя собственным доменным именем. Дополнительную информацию о настройке доменного имени с помощью платформы DigitalOcean можно найти в нашей статье Введение в DigitalOcean DNS.

В Nginx на Ubuntu 20.04 по умолчанию включен один серверный блок, настроенный для вывода документов из директории /var/www/html . Хотя это хорошо работает для отдельного сайта, при хостинге нескольких сайтов это неудобно. Вместо изменения /var/www/html мы создадим в /var/www структуру директорий для нашего сайта your_domain, оставив /var/www/html как директорию по умолчанию для вывода в случае, если запросу клиента не соответствуют никакие другие сайты.

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

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

Разрешения корневых директорий веб-сервера должны быть правильными, если вы не изменяли значение unmask , которое устанавливает разрешения файла по умолчанию. Чтобы убедиться, что разрешения корректны, позволить владельцу читать, писать и запускать файлы, а группам и другим пользователям разрешить только читать и запускать файлы, вы можете ввести следующую команду:

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

Добавьте в страницу следующий образец кода HTML:

Сохраните и закройте файл с помощью ввода CTRL и X , а затем Y и ENTER после завершения работы.

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

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

Мы обновили конфигурацию root с указанием новой директории и заменили server_name на имя нашего домена.

Теперь мы активируем файл, создав ссылку в директории sites-enabled , который Nginx считывает при запуске:

Два серверных блока активированы и настроены для реагирования на запросы на основе директив listen и server_name (дополнительную информацию об обработке Nginx этих директив можно найти здесь):

  • your_domain : будет отвечать на запросы your_domain и www.your_domain .
  • default : будет отвечать на любые запросы порта 80, не соответствующие двум другим блокам.

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

Найдите директиву server_names_hash_bucket_size и удалите символ # , чтобы раскомментировать строку. Если вы используете nano, вы можете быстро найти слова в файле, нажав CTRL и w .

Сохраните файл и закройте его после завершения.

Проведите тестирования, чтобы убедиться в отсутствии ошибок синтаксиса в файлах Nginx:

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

Теперь Nginx должен обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http://example.com , после чего должны увидеть примерно следующее:

Первый серверный блок Nginx

Шаг 6 — Знакомство с важными файлами и директориями 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 не будет использовать файлы конфигурации из этой директории, если они не будут связаны с директорией sites-enabled . Обычно конфигурации серверных блоков записываются в эту директорию и активируются посредством ссылки на другую директорию.
  • /etc/nginx/sites-enabled/ : директория, где хранятся активные серверные блоки каждого узла. Они созданы посредством ссылки на файлы конфигурации в директории sites-available .
  • /etc/nginx/snippets : в этой директории содержатся фрагменты конфигурации, которые можно включить в конфигурацию Nginx. Воспроизводимые сегменты конфигурации хорошо подходят для преобразования в сниппеты.

Журналы сервера

  • /var/log/nginx/access.log : каждый запрос к вашему веб-серверу регистрируется в этом файле журнала, если Nginx не настроен иначе.
  • /var/log/nginx/error.log : любые ошибки Nginx будут регистрироваться в этом журнале.

Заключение

Теперь вы установили веб-сервер и у вас есть богатые возможности выбора типа обслуживаемого контента и технологий для расширения возможностей пользователя.

Если вы хотите создать более полный набор приложений, ознакомьтесь со статьей Установка Linux, Nginx, MySQL, PHP (стек LEMP) в Ubuntu 20.04.

голоса
Рейтинг статьи
Ссылка на основную публикацию