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

Nginx страница по умолчанию Хостинг

Каждый ресурс индивидуален. В статье приведены только самые основы и для того чтобы настроить работу ресурса максимально оптимально для работы вам придется используя документацию разработчика. Особое внимание следует уделить директивам кэширования proxy_cache так как они очень сильно могут влиять на скорость работы ресурса.

Введение

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

В этом обучающем модуле мы расскажем, как установить Nginx на сервере Debian 9.

Установим и настроим Nginx на системе Rocky Linuxи или любого дистрибутива семейства RHEL. Рассмотрим разные варианты использования сервиса. Использование Nginx для web проектов работающих на бюджетных хостингах или железе — лучший вариант.

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

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

Предыдущая версия руководства была написана Джастином Эллингвудом.

Nginx является одним из самых популярных веб-серверов в мире, его используют для хостинга самых больших и нагруженных сайтов в Интернете. Nginx в подавляющем большинстве случаев менее требователен к ресурсам, чем Apache; его можно использовать как в качестве веб-сервера, так и в качестве обратного прокси-сервера (reverse proxy).

В этом руководстве мы рассмотрим процесс установки Nginx на ваш сервер с Ubuntu 18.04.

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

и приводим к следующему виду:

Генерируем SSL сертификат для нашего сайта по умолчанию:

Включаем сайт по умолчанию если вдруг Вы его отключили, если нет, пропускаем этот шаг:

ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

Проверяем конфигурацию Nginx и если все хорошо, перезагружаем:

nginx -t
systemctl reload nginx

Все! Теперь при доступе к нашему серверу по IP или неизвестному домену, будет открывается заглушка с минимум информации о нашем сервере.

Из этой статьи вы узнаете про основные моменты работы с Nginx на системах CentOS, Rocky Linux и любого дистрибутива семейства любое семейство RHEL. Более подробно о работе с Nginx можно узнать на сайте разработчика в разделе документации. Долгое время лидирующие позиции занимал Apach, но новый продукт кардинально изменил подход к обработке команд и позволяет обслуживать высоко нагруженные сайты на бюджетном железе. Более детально узнать про автора Игоря Сысоева и ознакомится с принципами работы вы можете на просторах сети интернет. От себя лишь скажу что теперь это моя основная и любимая связка при организации веб сервера по причине быстроты и удобства работы.

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

Для установки самой свежей стабильной версии Nginx на СentOS или Rocky Linux (любое семейство RHEL) подключим родной репозиторий выполнив следующие действия:

Установим выполнив команду:

dnf install nginx

Перед установкой убеждаемся что установка идет с репозитория nginx.

Запустим и добавим в автозагрузку:

systemctl start nginx
systemctl enable nginx

= Можно одной командой =
systemctl enable —now nginx

Для проверки выполним команду в консоли:

Видим код страницы. N GINX работает.

Например, мне не удобно видеть такую страницу по умолчанию и я привожу её к следующему виду:

Используя такую страницу я всегда понимаю на какой сервер я попадаю.


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

Шаг 2 — Настройка файрвола

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

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

ufw app list

В результате выполнения этой команды будет выведен список профилей приложений:

Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH

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

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

Рекомендуется настраивать ufw таким образом, чтобы разрешать только тот трафик, который вы хотите разрешить в явном виде. Поскольку мы ещё не настроили SSL для нашего сервера, в этой статье мы разрешим трафик только для порта 80.

Сделать это можно следующей командой:

Вы можете проверить изменения введя команду:

В результате должен отобразиться вывод следующего вида:

Status: active

To Action From
— —— —-
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)

Читайте также:  Доступ в Личный кабинет FirstVDS |

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

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

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

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 Tue 2018-09-04 18:15:57 UTC; 3min 28s ago
Docs: man:nginx

Process: 2402 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 2399 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 2404 (nginx)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/nginx.service
├─2404 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2405 nginx: worker process

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

addr show eth0 inet

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

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

Эта страница включена в Nginx и показывает правильную работу сервера.

Шаг 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 для создания необходимых родительских директорий:

Разрешения корневых директорий веб-сервера должны быть правильными, если вы не изменяли значение 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 этих директив можно найти здесь):

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

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

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

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

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

systemctl restart nginx

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


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

Шаг 6 — Знакомство с важными файлами и директориями Nginx

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

Контент

Для прохождения этого обучающего модуля вам потребуется настроенный на сервере пользователь без привилегий root с привилегиями sudo, а также активный брандмауэр. Подробнее об этом можно узнать в обучающем модуле Начальная настройка сервера для Debian 9.

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

В конце процесса установки Ubuntu 20.04 запускает 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 Fri 2020-04-20 16:08:19 UTC; 3 days ago
Docs: man:nginx

Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
Memory: 3.5M
CGroup: /system.slice/nginx.service
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2380 nginx: worker process

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

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

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

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

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

Читайте также:  Брэндированный DNS или white labeling на Amazon Route 53

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

systemctl stop nginx

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

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

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

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

systemctl disable nginx

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

systemctl nginx

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

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

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

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

update
nginx

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

Шаг 1 — Установка веб-сервера Nginx

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

Поскольку мы собираемся использовать apt в первый раз в ходе этой сессии, начнём с обновления локального списка пакетов. Далее установим nginx:

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

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

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

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

Теперь права должны для корневой директории быть настроены правильным образом при условии, что вы не меняли своё значение umask. На всяких случай мы можем удостовериться в этом командой:

Далее создадим страницу index.html в nano или любом другом текстовом редакторе:

Добавим в файл следующий HTML:

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

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

Скопируйте следующий текст настроек серверного блока в созданный файл:

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

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

Для того, чтобы избежать потенциальной проблемы hash bucket memory, которая может появиться при добавлении дополнительных имён серверов, нам необходимо изменить одно значение в файле /etc/nginx/nginx.conf. Откройте файл командой:

Найдите директиву server_names_hash_bucket_size и удалите символ # для того, чтобы раскомментировать её:

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

Если никаких проблем не обнаружилось, перезапустите Nginx для применения внесённых изменений:

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

Шаг 6 — Важные файлы и директории Nginx

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

Логи сервера

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

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

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

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

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

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

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

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

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

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

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

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

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

После завершения процесса установки Ubuntu 18.04 запустит 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 Fri 2018-04-20 16:08:19 UTC; 3 days ago
Docs: man:nginx

Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
CGroup: /system.slice/nginx.service
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2380 nginx: worker process

Читайте также:  Отзывы о хостинге Fornex и обзор от экспертов |

Как видно из вывода выше, сервис запущен и работает. Тем не менее, убедимся в его полной работоспособности путём запроса веб-страницы.

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

Попробуйте набрать эту команду в терминале вашего сервера:

В результате будет выведено несколько IP адресов. Попробуйте вставить каждый из них в браузер.

Другим способом определить свой IP адрес будет проверка, как ваш сервер виден из Интернета:

Наберите полученный IP адрес или доменное имя в вашем веб-браузере.

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

Если вы видите подобную страницу в своём браузере, вы успешно установили Nginx.

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

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

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

Проксирования запросов на удаленный сервер

В локальной сети может работать множество сайтов. Самый лучший способ это настроить одну точку входа и оттуда переправлять запросы на ресурсы в локальной сети. Nginx прекрасно с этим справляется используя модуль ngx_http_proxy_module. Более подробно о том как можно настраивать проксирование запросов вы можете в документации разработчика.

Мне нравится использовать эту технологию так как она позволяет:

Параметры в используемом примере следующие:

Настройка на проксирующем Nginx

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

Из приведенного примера ниже вы узнаете:

Настройка на проксируемом ресурсе

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

Проксирование директории или файлов

Секции должны входить в блок server.

Например, проксируем папку foto находящуюся на другом ресурсе:

Для проксирования файлов с форматом gif,jpg,png код будет иметь следующий вид:

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

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

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

Для запуска остановленного веб-сервера наберите:

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

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

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

Для повторного включения запуска Nginx при старте сервера введите:

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

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

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

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

Найдите директиву server_names_hash_bucket_size и удалите символ #, чтобы убрать режим комментариев для строки:

Если проблем нет, вы увидите на экране следующие результаты:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

После тестирования конфигурации перезапустите Nginx для активации изменений:

Перед установкой

Перед тем, как начать следовать описанным в этой статье шагам, убедитесь, что у вас есть обычный не-рутовый (non-root) пользователь с привилегиями sudo. Узнать, как настроить такого пользователя на вашем сервере, можно из статьи о первичной настройке сервера на Ubuntu 18.04.

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

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

Заключение

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

Если вы хотите использовать более полный стек приложений, рекомендуем ознакомиться с нашим руководством по настройке стека LEMP на сервере с Ubuntu 18.04.

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

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

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

Оцените статью
Хостинги