Cpanel nginx: Nginx | cPanel & WHM Documentation
Готовьтесь, NGINX идет / cPanel Панель / Hosting Kitchen
Возможно, одним из наиболее востребованных и популярных запросов функций, представленных для cPanel & WHM, было добавление веб-сервера NGINX в качестве альтернативы Apache. У нас есть хорошие новости для тех из вас, кто спрашивал: NGINX идет.
Примечание: поскольку поддержка NGINX на серверах cPanel и WHM все еще является экспериментальной, она не будет сразу доступна в графическом пользовательском интерфейсе WHM. Имейте в виду, что это представление о том, как интерфейс может появиться в более поздних версиях.
Первый шаг сделан
cPanel уже давно рассматривает возможность предложения NGINX в качестве альтернативы Apache. Однако, учитывая то, что cPanel & WHM полагается на Apache в своей основе, мы решили, что в то время этот процесс был слишком сложным для выполнения. Мы потратили значительное время на то, чтобы отделить продукт от зависимости от Apache. Хотя наша работа еще не завершена, мы продвинулись достаточно далеко, чтобы сделать первые шаги в направлении интеграции другого веб-сервера.
Наше исследование показало, что основным вариантом использования для людей, запрашивающих поддержку NGINX, были сайты WordPress, поэтому именно на этом мы сфокусировали этот минимально жизнеспособный продукт. Мы выбрали PHP-FPM в качестве обработчика PHP, поскольку именно этот обработчик рекомендует WordPress и уже поддерживается cPanel & WHM. Чтобы воспользоваться NGINX, вам нужно включить PHP-FPM на всех доменах, которые обслуживают контент PHP.
Несколько предостережений
NGINX не полностью заменяет Apache в этом экспериментальном выпуске. cPanel & WHM по-прежнему требует Apache для некоторых функций (например, Mailman) для правильной работы. На этой итерации Apache перемещается на альтернативный порт в процессе установки NGINX и возвращается в прежнее состояние, когда NGINX удаляется.
Пожалуйста, также будьте предупреждены, это экспериментальный релиз. Как и в случае со всеми сборками EDGE и Experimental, мы не рекомендуем запускать NGINX в производственной среде, если администратор сервера не имеет большого опыта и не имеет плана отката. Будут вещи, которые просто не будут работать в продукте, что мы ожидаем. Мы будем искать ваши отзывы о том, что, по-видимому, не работает должным образом, и мы с радостью повторим, если позволит время.
В настоящее время мы можем с уверенностью сказать, что правила mod_security не будут работать с NGINX, а правила и ограничения переписывания .htaccess больше не будут применяться. Значение таких перезаписей как защищенных паролем каталогов больше не будет работать.
Хорошие новости!
Вместо того чтобы сосредоточиться на частях cPanel & WHM, которые в настоящее время не работают с NGINX, вот части, которые мы протестировали и показали, что они работают нормально:
- WordPress
- PHP-FPM
- cPanel и субдомены веб-службы
- почтальон
- MultiPHP (с PHP-FPM)
- AutoSSL
Итак… Как мне установить его?
Процесс установки довольно прост, но требует SSH-доступа корневого уровня к вашему серверу. Получив доступ к вашему серверу, выполните следующие команды:
yum install ea4-experimental
yum install ea-nginx
NGINX вообще не подключается к cPanel & WHM, поэтому, если будут внесены какие-либо изменения в конфигурацию, вам нужно будет вручную запустить
/scripts/ea-nginx config --all
для регенерации конфигураций NGINX и перезагрузить сервер. Добавление этого сценария в корневой каталог при использовании NGINX является одним из потенциальных решений для серверов, на которых часто происходят изменения.
Что мы ищем?
Мы решили выпустить его как экспериментальный, потому что полностью осознаем, что NGINX еще не готов к работе в среде cPanel. Наша цель — получить обратную связь от вас, сообщества cPanel, чтобы мы могли оценить ваши потребности и потребности от NGINX в качестве функции и использовать ее для будущих итераций. В настоящее время мы не планируем запускать NGINX в производство, поскольку некоторые важные функции cPanel в настоящее время не работают должным образом. Ваши отзывы о NGINX будут чрезвычайно полезны для демонстрации того значения, которое он добавляет к пользовательской базе в целом.
Когда это пойдет в производство?
Ответ на это не простой. Этот выпуск поможет нам оценить текущий интерес к NGINX как альтернативе Apache и получить ценные отзывы сообщества. Однако у нас пока нет сроков перехода от этой реализации к экспериментальной и производственной. Как только мы увидим принятие этой экспериментальной реализации и получим отзывы от этих пользователей, следующим шагом будет исправление известных нам проблем. Затем мы подвергаем продукт строгому испытательному периоду, следя за тем, чтобы не было выявлено критических или серьезных ошибок, и чтобы эта функция соответствовала нашим критериям для функции производственного уровня. Только тогда мы начнем внедрять его в производственную среду.
Для получения дополнительной информации о запуске NGINX на вашем сервере cPanel & WHM, пожалуйста, ознакомьтесь с нашей документацией.
Обзор cPanel — веб-консоли для управления сайтами и хостингом / Блог компании RUVDS.com / Хабр
Продолжаем серию постов о панелях управления хостингом и сайтами (веб-консолях), которые RUVDS предлагает своим клиентам. Сегодня мы рассмотрим одну из самых популярных панелей cPanel, лицензию на которую можно получить бесплатно на 2 недели, при покупке виртуального сервера.
Предыдущие посты можно посмотреть здесь: Обзор ISPmanager, Обзор Plesk и Разбираем новую web-консоль Plesk Obsidian. Напомним, что лицензии на Plesk и ISPmanager можно получить по акции бесплатно до конца этого года при покупке VPS. О других панелях — в посте Что нового в веб-консолях 2019. А здесь о хостинге: Как выбрать VPS и Хостинг: варианты, сравнения, пользовательская статистика.
cPanel — одна из самых востребованных коммерческих веб-консолей в мире, особенно в Северной Америке и Европе. Сама компания-разработчик пишет на официальном сайте о своём продукте так: «ведущая в отрасли хостинговая платформа с поддержкой мирового уровня». Её признают одновременно удобной и для работы с сайтами, и для перепродажи хостинга, во многом поэтому она так и популярна. Собственно, и состоит панель из двух модулей-интерфейсов: графической панели управления сайтами (cPanel) и консоли администрирования Web Host Manager (WHM). Эти среды работают вместе и управлять сайтом можно в любой из них — поэтому cPanel идеально подходит как для начинающих, так и для разработчиков, которые предпочитают консоль, а не красивый дизайн.
Cpanel позволяет:
- Создавать сайты и домены в несколько кликов
- Запускать и управлять сетями электронной почты
- Хранить веб-файлы и управлять ими
WHM позволяет:
- Создавать учётные записи cPanel для клиентов
- Контролировать и защищать свой сервер
- Осуществлять перенос и резервное копирование данных в несколько кликов
Базовые ЯП: Perl, PHP (режимы PHP: suPHP, DSO (mod_php), FastCGI, CGI).
Поддерживаемые ОС: Red Hat Enterprise Linux (RHEL), СentOS, CloudLinux. Возможна поддержка Windows через виртуализацию или через панель Enkompass от тех же разработчиков.
Поддержка веб-серверов: Apache, Nginx, Apache+Nginx, LiteSpeed.
DNS-серверы: Bind, MyDNS,NSD.
FTP-серверы: ProFTPd, PureFTPd
SMTP-серверы: Exim
IMAP и POP3-серверы: Сourier, Dovecot
▍Интерфейс
Интерфейс cPanel состоит из следующих разделов:
- Панель навигации
- Боковая панель
- Главная Информация
- Особенности
- Статистика
Многие считают cPanel несколько перегруженной функциями, что осложняет работу новичкам. Однако, во-первых, cPanel — многофункциональная система, что говорит само за себя; во-вторых, разработчики постоянно стараются ускорить работу панели, активно работают над её улучшением, основываясь на запросах клиентов, в частности над интуитивностью и дружелюбностью интерфейса; в-третьих, на сайте компании есть обучающие видео, форум и блог плюс круглосуточная техподдержка. Заметим, что новичкам будет непросто с любой новой для них программой (хотя в cPanel заботятся и об этом), а вот опытные администраторы вряд ли будут страдать от обилия предоставленных инструментов для удобной и быстрой работы. Опишим их.
▍Файлы
В этом разделе собраны инструменты для работы с файлами сайта (включая интерфейс управления FTP-подключений), для мониторинга и управления доступным дисковым пространством учётной записи, для выполнения резервного копирования и восстановления файлов из него.
Файловый менеджер
Интерфейс позволяет управлять файлами: загружать, создавать, удалять и редактировать файлы без необходимости использования FTP или других сторонних приложений.
Изображения
Интерфейс для работы с картинками позволяет просматривать и изменять размеры изображений, преобразовывать типы файлов изображений.
Конфиденциальность каталога
Этот интерфейс надо использовать, чтобы ограничить доступ к определенным ресурсам на сайте, а именно — защитить паролем те каталоги, к которым вы не хотите разрешать доступ посетителям.
Использование диска
Помогает управлять использованием дискового пространства: позволяет сканировать диск и получать графические результаты обзора доступного пространства учётной записи.
Веб-диск
Функция для доступа к файлам сайта, как если бы они были локальным диском на вашем компьютере.
Учетные записи FTP
Интерфейс для управления учётными записями протокола передачи файлов (FTP).
FTP соединения
Интерфейс для просмотра текущих подключений к сайту через FTP.
Анонимный FTP
Используйте этот интерфейс, чтобы пользователи могли подключаться к вашему FTP-каталогу без пароля.
Резервное копирование
Интерфейс для резервного копирования сайта. Позволяет загружать на компьютер сжатую копию содержимого учётной записи cPanel (домашний каталог, базы данных, почтовые серверы пересылки и фильтры электронной почты). Мастер резервного копирования — пошаговое руководство, которое поможет в создании резервной копии.
Git Version Control
Интерфейс для размещения репозиториев Git в учётной записи cPanel.
Восстановление файлов и каталогов
Интерфейс для восстановления элементов из резервных копий файлов.
▍Базы данных
В этом разделе находятся различные инструменты для управления базами данных и их настройки – как внутренние, так и сторонние. Простые пошаговые руководства позволяют разобраться в различных настройках.
Базы данных MySQL
Для управления большими объёмами информации на сайтах.
MySQL Database Wizard
Мастер баз данных MySQL. С помощью мастера можно настроить базы данных MySQL, учетные записи и привилегии пользователей. Рекомендуется использовать этот мастер для создания первой базы данных и пользователей.
Удаленный MySQL
Интерфейс для настройки баз данных, к которым пользователи могут обращаться удалённо. Используйте эту функцию, если вы хотите, чтобы приложения (например, доски объявлений, корзины покупок или гостевые книги) на других серверах имели доступ к вашим базам данных.
PostgreSQL Базы данных
Интерфейс для управления большими объёмами информации на сайтах. Чтобы одновременно создать базу данных и учётную запись, которая будет к ней обращаться, используйте интерфейс PostgreSQL Database Wizard.
PhpPgAdmin
Сторонний инструмент, который можно использовать для управления базами данных PostgreSQL.
PhpMyAdmin
Сторонний инструмент, который можно использовать для управления базами данных MySQL.
▍Домены
Здесь расположены инструменты для создания, добавления и управления доменами учётной записи. С помощью этого меню можно присваивать псевдонимы доменам, присваивать короткие URL-адреса или перенаправлять одну веб-страницу на другую.
Site Publisher
Интерфейс для быстрого создания простых веб-сайтов из различных шаблонов.
Домены
Для создания и управления несколькими доменами для учётной записи.
Addon Domains
Интерфейс для добавления доменов в учётную запись. Каждый Addon Domain имеет свои собственные файлы и будет отображаться как отдельный сайт для ваших посетителей.
Субдомены
Представляют собой подразделы сайта, которые могут существовать как новый сайт без нового доменного имени. Интерфейс можно использовать для создания запоминающихся URL-адресов для различных областей содержимого сайта. Например, вы можете создать поддомен для своего блога, к которому посетители могут получить доступ через blog.example.com и www.example.com/blog.
Псевдонимы
Псевдонимы доменов позволяют указать дополнительные доменные имена для существующих доменов учётной записи. Это даст пользователям возможность получить доступ к веб-сайту, если они введут указанный URL-адрес домена в своих браузерах.
Перенаправление
Используйте интерфейс Redirects, чтобы перенаправить определённую веб-страницу на другую и отобразить её содержимое. Это позволяет пользователям получать доступ к странице с длинным URL-адресом через страницу с более коротким и запоминающимся URL-адресом.
Зональный редактор
Используйте интерфейс редактора зон для добавления, редактирования и удаления записей DNS A, AAAA, CNAME, SRV, MX и TXT.
▍Электронная почта
Один из важнейших разделов панели, содержит инструменты для работы с электронной почтой доменов. Включает различные фильтры, функции защиты от спама и настройки шифрования. Здесь же можно настраивать календари, приложения контактов и чёрные списки.
Аккаунты электронной почты
Интерфейс для управления учётной записью электронной почты для доменов.
Транспортеры
Интерфейс пересылки, позволяющий пересылать любую входящую электронную почту с одного адреса на другой. То есть настроить адрес электронной почты для пересылки копий входящих писем на другой адрес.
Email Routing
Используйте интерфейс маршрутизации электронной почты для перенаправления входящей почты домена на определённый сервер.
Автоответчики
Интерфейс для отправки автоматических электронных писем всем, кто отправляет почту на определенную учётную запись электронной почты. Вы можете использовать эту функцию, если, например, вы находитесь в отпуске, недоступны или у вас есть общее сообщение, которое вы хотите отправить с адреса электронной почты своей службы поддержки.
Адрес по умолчанию
Интерфейс для установления адреса по умолчанию или универсального адреса, который будет получать любую почту, отправляемую пользователями на недействительный адрес электронной почты для домена.
Списки рассылки
Позволяет создать один адрес электронной почты для отправки почты на несколько адресов.
Отслеживание доставки
Интерфейс для просмотра попыток доставки почты и отслеживания маршрута доставки. Например, если нужно обнаружить проблемы с доставкой электронной почты.
Глобальные почтовые фильтры
Используйте интерфейс Global Email Filters для создания фильтров электронной почты для всех учётных записей почты вашей учётной записи cPanel.
Фильтры электронной почты
Позволяет создавать фильтры электронной почты для определенного адреса электронной почты. Можно использовать эту функцию, чтобы избежать спама, перенаправления почты или передачи сообщений в программу.
Аутентификация
Функция позволяет обезопасить свой почтовый сервер и просматривать информацию об исходящих сообщениях, а также проверить, было ли отправлено письмо от доверенного отправителя.
Импортёр адресов
Используйте интерфейс Address Importer для импорта файлов с целью одновременного создания нескольких адресов электронной почты или серверов пересылки.
Спам-фильтры
Интерфейс Spam Filters для настройки Apache SpamAssassin — платформы защиты от спама с возможностью фильтрации, идентификации, классификации и блокирования нежелательных массовых писем.
Архив
Интерфейс для сохранения входящих, исходящих или почтовых рассылок в течение определенного периода времени.
Шифрование
Используйте интерфейс шифрования для настройки GnuPG — общедоступной схемы шифрования, использующей подход с открытым ключом для шифрования сообщений, которые может расшифровать только закрытый ключ.
BoxTrapper
Функция защиты почтового ящика от спама. Требует, чтобы все отправители электронной почты, которых нет в вашем белом списке, ответили на подтверждающее письмо, прежде чем вы сможете получать их сообщения.
Календари и контакты
Функция настройки календарей и приложений контактов. Не работает с приложением iOS Reminder, если ваш сервер использует самозаверяющий SSL-сертификат и не поддерживает систему Horde Free / Busy для сторонних приложений.
Настройка серого списка
Интерфейс для управления Greylisting для каждого домена в учётной записи. Защищает пользователей электронной почты от спама.
Email DiskUsage
Интерфейс для просмотра всех ваших почтовых ящиков и быстрого удаления старых писем или больших сообщений.
▍Метрика
В разделе находятся интерфейсы просмотра пропускной способности сайта, количества посетителей за определённую единицу времени, ошибок сайта и настройки метрики на разных доменах.
Посетители
Здесь можно просмотреть самые последние записи в журнале Apache для данного домена.
Ошибки
Здесь можно отобразить до 300 самых последних ошибок сайта. Эти данные помогут найти неработающие ссылки, отсутствующие файлы и другие проблемы.
Пропускная способность
Просмотр ежемесячного и общего использования пропускной способности сайта.
Raw Access
Просмотр посетителей сайта без графиков, диаграмм или другой графики. Загрузите заархивированную версию журнала доступа вашего сервера, чтобы быстро получить доступ к посетителям вашего сайта.
Awstats
Просмотр метрик AWStats — сторонней программы, которая производит визуальную статистику о посетителях вашего сайта.
Аналоговая статистика
Просмотр метрик Analog Stats — программы показателей, которая выдаёт простую сводку посетителей сайта.
Webalizer
Просмотра метрик Webalizer — программы метрик, которая создаёт графики и диаграммы о посетителях сайта.
Webalizer FTP
Просмотр метрик Webalizer для FTP, создающего различные диаграммы и графики о посетителях, которые использовали протокол FTP для доступа к сайту.
Редактор метрик
Позволяет выбрать программы метрик, которые вы хотите запускать на каждом домене.
▍Безопасность
В разделе находятся различные инструменты управления ключами и сертификатами, настройки доступов и максимального количества входов в систему, установки запретов на горячие ссылки на ваши сайты и прочие настройки безопасности. Есть даже функция запрета доступа к сайту с диапазона IP-адресов, т.е. можно запретить вход целой стране.
SSH доступ
Интерфейс для безопасного удалённого подключения к серверу через командную строку.
IP Blocker
Для запрета доступа к сайту с диапазона IP-адресов. Если вы введёте полное доменное имя, эта функция попытается преобразовать его в IP-адрес.
SSL / TLS
Функция управления ключами SSL / TLS, сертификатами и запросами на подпись. Используйте её для повышения безопасности веб-сайта.
Защита Hotlink
Используйте интерфейс Hotlink Protection, чтобы запретить горячие ссылки на ваши сайты. Горячая ссылка возникает, когда другой сайт встраивает контент с вашего сайта и использует вашу пропускную способность для обслуживания файлов.
Leech Protection
Используйте интерфейс чтобы установить максимальное количество входов в систему, которые могут произойти в течение двух часов. Эта функция помогает управлять пользователями, которые хотят опубликовать свои пароли в закрытой области вашего сайта.
Политика безопасности
Для настройки вопросов безопасности, которые cPanel отображает при попытке войти в свою учётную запись с нераспознанного IP-адреса.
ModSecurity
Для включения или отключения ModSecurity для ваших доменов.
Двухфакторная аутентификация
Интерфейс для настройки улучшенной меры безопасности, которая требует двух форм идентификации для входа в систему. Если вы отключите эту функцию, вы также должны удалить все существующие пользовательские конфигурации 2FA.
Мастер SSL / TLS
Функция позволяет легко приобретать и устанавливать сертификаты SSL для доменов в вашей учетной записи. Здесь также перечислены приобретённые сертификаты, которые поставщик SSL-сертификатов не предоставил.
Статус SSL / TLS
Для просмотра состояния или обновления сертификатов SSL.
▍Программное обеспечение
Здесь находятся инструменты управления различными функциями, которые позволяют выполнять задачи в Perl, PHP и другом ПО.
PHP
Просмотр конкретной информации о конфигурации PHP вашего сервера. Этот интерфейс отображается только на серверах, на которых выполняется EasyApache 3.
Пакеты PHP PEAR
Управление коллекциями функций, которые позволяют выполнять задачи в PHP. Надо установить пакет PEAR, прежде, чем использовать его в программе PHP.
Модули Perl
Управление коллекциями функций, которые позволяют выполнять задачи в Perl. Прежде, чем использовать его в программе Perl, надо установить модуль Perl.
RubyGems
Управление коллекциями функций, которые позволяют выполнять задачи в Ruby. Вы должны установить RubyGem, прежде чем использовать его в программе Ruby.
Ruby on Rails
Интерфейс для создания и развёртывания приложения Ruby on Rails из вашей учетной записи cPanel.
Программное обеспечение сайта
Интерфейс для добавления полезного программного обеспечение на сайт. Доступное вам программное обеспечение зависит от настроек вашего хостинг-провайдера для вашей учетной записи.
Оптимизировать сайт
Настройка способа обработки ответов Apache и повышения производительности веб-сайта.
MultiPHP Manager
Лёгкое управление конфигурацией PHP учётных записей. Вы увидите этот интерфейс только в том случае, если на вашем сервере работает EasyApache 4.
MultiPHP INI Editor
Настройка PHP. Вы увидите этот интерфейс только в том случае, если на вашем сервере работает EasyApache 4.
Менеджер приложений
Использование интерфейса диспетчера приложений позволяет быстро развёртывать и легко поддерживать приложения Ruby. Вы увидите этот интерфейс только в том случае, если сервер запускает EasyApache 4 с Ruby через профиль Mod_Passenger.
▍Дополнительно
Настройки предназначены для опытных пользователей.
Терминал
Функция для подключения к вашей учётной записи через командную строку.
Cron Jobs
Интерфейс для автоматизации выполнения определённых команд или сценариев на сайте в определённое время. Например, вы можете настроить задание на удаление временных файлов каждую неделю, чтобы освободить место на диске.
Отслеживать DNS
Используйте этот интерфейс, чтобы найти IP-адрес или проследить маршрут от вашего компьютера до вашего веб-сервера. Эта функция может помочь убедиться, что вы правильно настроили DNS своих сайтов.
WebHost Manager
По этой ссылке — переход к документации WHM–интерфейса.
Индексы
Настройка способов отображения каталогов, когда посетитель пытается получить к ним доступ. Обычно посетители видят страницу индекса Apache для этого каталога.
Страницы ошибок
Настройка сообщений, информирующих посетителей о том, что веб-сервер не может получить доступ к вашему сайту. Например, посетитель, который введёт несуществующий URL, увидит ошибку 404.
Apache Handlers
Управление работой веб-сервера Apache определённых типов файлов и расширений для сайта. Можно вручную добавить обработчик и расширение, чтобы настроить Apache для обработки нового типа файла с существующим обработчиком.
MIME Types
Настройка того, как cPanel передает информацию в браузер о том, как обрабатывать определённые расширения файлов. Например, на большинстве серверов тип MIME text/html соответствует расширениям.htm,.html и.shtml, что заставляет браузер интерпретировать эти файлы как файлы HTML.
Сканер вирусов
Для поиска вирусов и уязвимостей системы безопасности. После определения потенциальной угрозы безопасности эта функция предложит вам предпринять соответствующие действия.
API Shell
Для запуска функций API cPanel в интерфейсе cPanel. Функции API могут изменять или удалять данные на вашем сервере, что может привести к его сбою.
▍Личные настройки
Здесь можно настроить внешний вид cPanel, чтобы она наилучшим образом соответствовала вашим потребностям.
Пароль и безопасность
Здесь можно изменить пароль учётной записи cPanel и управлять учётными записями внешней аутентификации.
Изменить язык
Можно выбрать язык, на котором отображается интерфейс cPanel.
Изменить стиль
Можно выбрать стиль, в котором отображается интерфейс cPanel.
Контактная информация
Можно установить свою контактную информацию и настроить параметры уведомлений.
Диспетчер пользователей
Интерфейс для добавления, управления и удаления своих субсчетов. Позволяет связывать учетные записи служб с суб-аккаунтами и управлять доступом каждого субаккаунта к электронной почте, FTP и веб-диску.
Настройки аккаунта
Позволяет изменить местоположение уведомлений о системных предупреждениях на экране. Этот интерфейс отображается только в меню «Пользовательские настройки» на панели навигации.
▍Приложения
Интерфейс работы с приложениями огромный. cPanel позволяет устанавливать различные типы программного обеспечения. Раздел включает в себя всё: от блогов и порталов до CMS и форумов. Например, имеется WordPress Manager, который позволяет управлять WordPress в вашей учетной записи cPanel, чтобы получить доступ к этому интерфейсу, необходимо установить WordPress cPAddon в интерфейсе установки программного обеспечения сайта cPAddons (WHM → Home → cPanel → Установить программное обеспечение сайта cPAddons).
Документация к последнему релизу обновлений от 26.09.2019.
Консоль cPanel — это надёжное и стабильное ПО для работы с хостингом и сайтами, рассчитанное на пользователя с широким диапазоном уровня подготовки. Именно это отличает cPanel от конкурентов: в ней много функций для искушённого администратора, которыми может пренебречь владелец сайта, впервые решивший зайти на эту кухню и не особенно жаждущий разбираться в ней, но удобство управления обеспечено и тем, и тем.
При покупке VPS в RUVDS у вас есть возможность бесплатно протестировать возможности cPanel в течение двух недель.
Веб авторизация доменного пользователя через nginx и HTTP Negotiate / Хабр
Намедни встала задача — обеспечить прозрачную авторизацию пользователей домена в CRM, собственно Microsoft давным давно разработал для этих целей метод аутентификации HTTP Negotiate, это все замечательно работает на IIS и Windows Server, а у нас за плечами Samba4 в роли Primary Domain Controller и проксирующий веб сервер nginx. Как быть?
В сети куча информации по организации подобной схемы для Apache2 & AD на базе Windows, а вот пользователям nginx приходится собирать все по крупицам, информации кот наплакал. В базовой поставке Nginx нет подобного функционала. Благо люди не пали духом и история началась в мейл рассылках nginx в 2009 году, где один американский товарищ из Огайо нанял разработчика на RentACoder для запиливания модуля с подобным функционалом. Ребята форкнули подобный модуль для апача, прикрутили его к nginx и результаты работы выложили на github, где модуль время от времени допиливался разными людьми и в итоге принял роботоспособный вид. Последнюю версию можно получить на гитхабе.
В данном руководстве я расскажу как заставить работать nginx с SPNEGO модулем и samba4.
Первое необходимое — собрать nginx с нужным нам модулем. Для примера будет использоваться Ubuntu 16.04.
Для начала ставим nginx
apt-get install nginx -V
Далее куда-нибудь качаем последнюю версию исходников с официального сайта.
wget http://nginx.org/download/nginx-1.11.2.tar.gz
Отлично, распакуем папку с исходниками и положим в него наш spnego-http-auth-nginx-module
tar xvzf nginx-1.11.2.tar.gz
cd nginx-1.11.2
git clone https://github.com/stnoonan/spnego-http-auth-nginx-module
Смотрим с какими опциями у нас сейчас собран nginx из базовой поставки и получаем портянку
root@dc1:~# nginx -V
nginx version: nginx/1.11.1
built by gcc 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2.1)
built with OpenSSL 1.0.2g-fips 1 Mar 2016
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_perl_module=dynamic --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-debug --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed'
Копируем в блокнот портянку и добавляем куда-нибудь
--add-module=spnego-http-auth-nginx-module
Приступаем к сборке с нужными нам параметрами
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_perl_module=dynamic --with-threads --with-stream --with-stream_ssl_module --add-module=spnego-http-auth-nginx-module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-debug --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed'
Естественно утилиты для сборки должны быть установлены в системе, а nginx должен быть потушен.
make
make install
После процедуры у нас в итоге теперь рабочий самосборный nginx с нужным нам модулем. Проверить это можно также — nginx -V и посмотреть в параметрах наличие модуля.
Для примера используем url для авторизации test.intranet.com, домен intranet.com
Пора немного поработать с самбой, добавим пользователя, на которого повесим service principal name (spn) для авторизации через Kerberos
samba-tool user add HTTP
samba-tool user setexpiry HTTP --noexpiry
samba-tool spn add HTTP/test.intranet.com HTTP
samba-tool spn add host/test.intranet.com HTTP
Создадим Kerberos keytab файл для nginx
samba-tool domain exportkeytab /etc/http.keytab --principal=HTTP/test.intranet.com
samba-tool domain exportkeytab /etc/http.keytab --principal=host/test.intranet.com
Проверим созданный keytab
klist -ke /etc/http.keytab
Keytab name: FILE:/etc/http.keytab
KVNO Principal
---- --------------------------------------------------------------------------
1 host/[email protected] (des-cbc-crc)
1 host/[email protected] (des-cbc-md5)
1 host/[email protected] (arcfour-hmac)
1 HTTP/[email protected] (des-cbc-crc)
1 HTTP/[email protected] (des-cbc-md5)
1 HTTP/[email protected] (arcfour-hmac)
Авторизуемся на контроллере домена через kerberos
kinit administrator
Password for [email protected]:
Warning: Your password will expire in 39 days on Пт 30 июл 2016 11:23:11
Проверяем авторизацию в домене по имени spn с помощью keytab-файла:
kinit -V -k -t /etc/http.keytab HTTP/[email protected]
Using default cache: /tmp/krb5cc_0
Using principal: HTTP/[email protected]
Using keytab: /etc/http.keytab
Authenticated to Kerberos v5
У меня на данном этапе была проблема, аутентификация никак не хотела проходить. Ошибка:
kinit: Client not found in Kerberos database while getting initial credentials
Перерыл пол интернета, в итоге нашлось решение, оказалось samba-tool отрабатывает не так, как задумывалось Microsoft, неожиданно, правда?
Для решения проблемы идем на виндовую машину и с помощью адмистративной консоли «Active Directory — пользователи и компьютеры» правим нашего пользователя HTTP, а именно правим поле имя входа пользователя на — HTTP/test.intranet.com
После этой процедуры все работает.
Пора перейти к конфигурации nginx, смотрим мой конфиг виртуального хоста
server {
listen *:443 ssl;
server_name test.intranet.com;
# error_log /var/log/nginx/debug.log debug;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
proxy_pass http://********/$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
auth_gss on;
auth_gss_realm INTRANET.COM;
auth_gss_keytab /etc/http.keytab;
auth_gss_service_name HTTP/test.intranet.com;
# auth_gss_allow_basic_fallback off;
}
}
Параметр auth_gss_allow_basic_fallback off; позволяет выключить запрос basic авторизации если пошло что-то не так, допустим юзер не в домене.
Для работы прозрачной авторизации необходимо выполнение некоторых условий:
- Клиентская машина состоит в домене уровня Windows 2003 или выше
- Пользователь залогинен в домен
- Обращение к хосту идет посредством HTTPS (по моим тестам работает и с http)
- Хост внесен в зону Intranet security zone в IE
- Имя хоста есть в DNS под A записью
- Имя хоста лежит в зоне домена (пример — xxxx.intranet.com)
- Вы корректно создали Service Principal Names (SPNs) в Active Directory, а также замапили на service account (в нашем случае HTTP)
Остается на машине внести наш URL — test.intranet.com в зону Intranet security zone в IE и пробовать зайти по нашей ссылке. Если все настроено верно, то nginx должен прозрачно пропустить юзера на сайт. На стороне сервера, куда мы собственно проксируем соеденение, в заголовках пакетов можно словить следующую информацию.
[PHP_AUTH_USER] => Administrator [PHP_AUTH_PW] => bogus_auth_gss_passwd
Остается немного допилить web приложение для прозрачной аутентификации, но то дело уже web программиста…
В других браузерах этот механизм так же работает с небольшими доработками.
- В Firefox входим в «about:config» ищем параметры с «negotiate»
Добавляем наш сайт в параметр «network.negotiate-auth.trusted-uris» например"http://test.intranet.com"
Параметр «network.negotiate-auth.using-native-gsslib» должен быть true.
- Для работы Chrome, его нужно запускать с параметром:
google-chrome --auth-server-whitelist="http://test.intranet.com" --auth-negotiate-delegate-whitelist="http://test.intranet.com"
Собственно вот и весь процесс настройки, убил я на него пару дней, решил поделиться с общественностью. Данный механизм позволяет избавить пользователей в офисе от ввода логина\пароля при доступе к какому-либо внутреннему web приложению.
Настройка виртуальных хостов Nginx | Losst
В одной из прошлых статей мы говорили о том, как выполняется установка и первоначальная настройка веб-сервера Nginx в CentOS 7. Этот веб-сервер завоевал огромную популярность благодаря высокой производительности и удачной архитектуре самой программы, из-за которой такая производительность и стала возможной.
Одна из основных возможностей веб-сервера — обслуживание нескольких сайтов на одном IP-адресе и в одной программе. Эта функция реализована с помощью виртуальных хостов. В этой статье мы разберём, как выполняется настройка виртуальных хостов в Nginx. Прежде чем читать статью дальше, я рекомендую просмотреть статью настройка Nginx, чтобы понять общий синтаксис конфигурационного файла.
Содержание статьи:
Настройка виртуального хоста Nginx
Вообще, у Nginx только один конфигурационный файл — это /etc/nginx/nginx.conf. Все остальные файлы из папки /etc/nginx/* подключаются в этот файл с помощью директивы include. Поэтому теоретически все виртуальные хосты или только часть из них могут быть размещены в этом файле. Однако так делать не рекомендуется.
Для этого уже существует папка /etc/nginx/sites-available/ и /etc/nginx/sites-enabled. Первая просто содержит файлы конфигурации, в каждом из которых находится отдельный виртуальный хост. Вторая папка содержит ссылки на файлы из /etc/nginx/sites-available и подключена к основному конфигурационному файлу. Даже если в вашей системе пока такая структура не используется, я рекомендую её создать, чтобы в конфигурации всегда был порядок.
1. Синтаксис виртуального хоста
Каждый виртуальный хост представляет из себя такой блок кода:
server {
listen ip_адрес:порт;
server_name доменные_имена;
root /путь/к/файлам/сайта/;
index index.php index.html;
….
location / {}
….
}
Кроме того, здесь могут использоваться и другие инструкции, но эти основные и обязательные.
- listen — указывает на IP-адрес и порт, на котором программа будет ожидать соединения от этого сайта. Чтобы выбрать любой IP-адрес, можно указать звёздочку, а порт указывать обязательно. Также в этой строке можно добавить параметр default_server, тогда этот виртуальный хост будет использоваться по умолчанию;
- server_name — доменные имена, на которые будет отзываться этот хост. При отправке запроса на сервер, браузер указывает, к какому домену он обращается. Nginx анализирует этот параметр и выбирает необходимый виртуальный хост. Чтобы обрабатывать все домены, используйте символ подчеркивания _;
- root — путь к файлам сайта, которые будут открываться при запросе к этому виртуальному хосту. У Nginx должен быть доступ на чтение ко всем папкам по этому пути;
- index — файлы, которые будут открываться, если адрес файла не указан в URL;
- location — это набор правил обработки путей в url. Каждый location может содержит путь URL а внутри него можно настроить открытие другого файла, аутентификацию, запрос к другому серверу и другие подобные вещи. Nginx анализирует все location в конфигурационном файле и выбирает самое подходящее. Из этого правила есть одно исключение. Если несколько location содержат регулярные выражения, то для обработки будет выбран первый подходящий.
2. Виртуальный хост по умолчанию
Теперь разберём создание виртуальных хостов nginx на примере. Давайте создадим виртуальный хост, который будет обрабатывать все необработанные запросы:
sudo vi /etc/nginx/sites-available/000-default.conf
server {
listen *:80 default_server;
server_name _;
root /usr/share/nginx/html;
index index.html index.htm;
location / {}
Все директивы, которые используются в блоке server, могут использоваться и в блоках location. Но нам не обязательно указывать root и index в каждом location. Если их опустить, то будут наследоваться те, которые были указаны в родительском блоке. Блоки server ведут себя аналогичным образом, поэтому, если мы не укажем другой путь к access.log, то будет использоваться путь, указанный в /etc/nginx/nginx.conf и так далее.
Теперь нам нужно активировать созданный виртуальный хост nginx. Для этого создайте символическую ссылку:
sudo ln -s /etc/nginx/sites-available/000-default.conf /etc/nginx/sites-enabled/000-default.conf
Затем убедитесь, что файлы из этого каталога подключены в основном конфигурационном файле:
sudo vi /etc/nginx/nginx.conf
Затем выполните эту команду, чтобы убедится, что вы не допустили ошибок:
nginx -t
Далее перечитайте конфигурацию nginx:
nginx -s reload
Теперь, если вы откроете IP-адрес сервера, то откроется созданный нами виртуальный хост.
2. Виртуальный хост с доменом
Аналогичным образом можно создать виртуальный хост для домена. Например example.ru:
sudo vi /etc/nginx/sites-available/example.conf
server {
listen *:80;
server_name example.ru;
root /usr/share/nginx/html;
index index.html index.htm;
location / {}
}
Если вы работаете на локальной машине и доступа к DNS выбранного домена у вас нет, то надо добавить его IP в файл /etc/hosts:
sudo vi /etc/hosts
127.0.0.1 example.ru
Повторите процедуру активации домена, и затем в браузере при запросе к домену example.ru откроется стартовая страница Nginx. Если по каким-либо причинам виртуальный хост Nginx не работает, вы можете посмотреть полный скомпилированный файл nginx.conf:
nginx -T
Также можно проверить, есть ли в нём конфигурация нужного хоста, например, ищем упоминания example.ru:
nginx -T | grep example.ru
3. Отключение виртуального хоста
Благодаря структуре директорий, которую мы использовали, будет довольно просто отключить ненужный хост. Все наши виртуальные хосты Nginx находятся в папке /etc/nginx/sites-available, а в активной папке только ссылки на эти файлы. Поэтому для удаления достаточно удалить на него ссылку из папки /etc/nginx/sites-enabled/:
rm /etc/nginx/sites-enabled/001-example.conf
А затем, при необходимости, мы можем активировать его обратно, просто создав ссылку.
Выводы
В этой статье была рассмотрена настройка виртуальных хостов Nginx. Как видите, всё довольно просто и очень удобно, особенно, если вам нужно иметь несколько сайтов на одной машине. Конечно, у Nginx нет таких удобных утилит для активации сайтов, как в Apache, но работать вполне можно.
Настройка веб-сервера Nginx — ИТ Проффи
Nginx – компактный и производительный веб-сервер, созданный для систем с высоким трафиком. Одной из его сильных сторон является эффективное представление статического контента, например, HTML или медиафайлов. В Nginx используется асинхронная модель с управлением событиями, что обеспечивает предсказуемую производительность при высокой нагрузке.
Динамический контент Nginx передает CGI, FastCGI или другим веб-серверам, например, Apache. Затем этот контент возвращается Nginx для отправки клиенту. В данном руководстве мы рассмотрим базовые принципы и параметры конфигурации Nginx.
Директивы, блоки и контексты
Все файлы конфигурации Nginx располагаются в директории /etc/nginx/
. Основной файл конфигурации – /etc/nginx/nginx.conf
.
Опции конфигурации Nginx называются директивами. Директивы организованы в группы, называемые блоками или контекстами (эти два понятия являются синонимами).
Строки, начинающиеся с символа «решетки» (#) – это комментарии. Они не интерпретируются Nginx. Строки с директивами должны оканчиваться на точку с запятой, иначе конфигурация не будет загружена, и вы получите сообщение об ошибке.
Ниже приведена сокращенная копия файла /etc/nginx/nginx.conf
, который входит в состав установки. Он начинается с 4 директив: user, worker_processes, error_log, и pid. Они не входят в состав блока, поэтому говорят, что они находятся в контексте main. Блоки events и http содержат дополнительные директивы и также расположены в контексте main.
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { . . . } http { . . . }
Блок http
Блок http содержит директивы управления веб-трафиком. Они часто называются универсальными, потому что используются для конфигурации всех веб-сайтов, содержащихся на сервере. Полный список всех доступных директив и их параметров для этого блока можно посмотреть в документации Nginx. В /etc/nginx/nginx.conf
можно увидить примерно следующий блок http
http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
В рассмотренном примере заданы следующие директивы:
include – указывает расположение дополнительных файлов конфигурации
default_type – задает MIME-тип ответов по умолчанию
log_format – задает поля, которые будут сохраняться в логе сервера
access_log – путь к файлу лога доступа к серверу
sendfile – прямая передача данных без буферизации, используется для ускорения работы сервера
tcp_nopush – настройка формирования TCP-пакетов, ускоряющая работу сервера (в данном случае закомментировано)
keepalive_timeout – максимальное время поддержания соединения, если пользователь ничего не запрашивает
gzip – включение компрессии (в данном случае закомментировано)
- Как уже было сказано, блок http содержит директиву include, которая указывает расположение файлов конфигурации Nginx.
Если установка выполнялась из официального репозитория Nginx, эта строка, как и в рассмотренном примере, будет иметь видinclude /etc/nginx/conf.d/*.conf;
. У каждого веб-сайта на вашем сервере в этой директории должен быть свой файл конфигурации с именем формата example.com.conf. Для отключенных сайтов (не отображаемых Nginx) он может быть переименован в формате example.com.conf.disabled. - При установке из репозиториев Debian или Ubuntu данная строка будет иметь вид
include /etc/nginx/sites-enabled/*;
. Директория/sites-enabled/
содержит символические ссылки на файлы конфигурации, которые хранятся в/etc/nginx/sites-available/
. Отключение сайта осуществляется удалением символической ссылки на sites-enabled. - В зависимости от источника установки в
/etc/nginx/conf.d/default.conf
или/etc/nginx/sites-enabled/default
есть пример файла конфигурации.
Серверные блоки
Независимо от источника установки файлы конфигурации будут содержать серверный блок (или блоки) для веб-сайта, обозначенный словом server. Например:
server { listen 80 default_server; listen [::]:80 default_server; server_name example.com www.example.com; root /var/www/example.com; index index.html; try_files $uri /index.html; }
Директива server_name позволяет размещать несколько доменов на одном IP-адресе (виртуальные хосты). Выбор домена осуществляется на основании информации в заголовке полученного запроса.
Директива listen задает Nginx имя или IP-адрес узла и TCP-порт, который он должен прослушивать для HTTP-соединений. Аргумент default_server означает, что этот виртуальный хост будет отвечать на все запросы на порт 80, в которых в явном виде не будет указан другой виртуальный хост. Вторая такая директива устанавливает аналогичное поведение для IPv6-соединений.
Обычно для каждого домена или сайта на сервере требуется создать свой файл. Вот некоторые примеры:
1.Обработка запросов к example.com и www.example.com:
server_name example.com www.example.com;
2.В директиве server_name можно использовать маски. Например, *.example.com и .example.com указывают серверу обрабатывать запросы на все поддомены example.com:
server_name *.example.com; server_name .example.com;
3.Обработка запросов ко всем доменным именам, начинающимся с example.:
server_name example.*;
Nginx разрешает указывать имена сервера, не соответствующие правилам доменных имен. Для ответа на запросы используется имя из заголовка HTTP вне зависимости от того, является ли оно допустимым доменным именем.
Это полезно, если ваш сервер работает в локальной сети или вы точно знаете все клиенты, которые будут осуществлять запросы, например, front-end прокси-серверы, у которых записи в /etc/hosts
настроены на IP-адрес Nginx.
Блоки Location
Блоки location позволяют настроить, как Nginx будет отвечать на запросы к ресурсам на сервере. Подобно тому, как директива server_name определяет обработку запросов к доменам, директивы location охватывают запросы к конкретным файлам и папкам, таким как http://example.com/blog/. Вот несколько примеров:
location / { } location /images/ { } location /blog/ { } location /planet/ { } location /planet/blog/ { }
Указанные выше расположения – это точно определенные строки, которые соответствуют части HTTP-запроса после имени узла.
Запрос: http://example.com/
Ответ: Если для example.com есть запись server_name, обработка данного запроса будет определяться директивой location /
.
Nginx всегда выполняет запрос, находя наиболее точное соответствие:
Запрос: http://example.com/planet/blog/ или http://example.com/planet/blog/about/
Ответ: Обработку запроса будет определять директива location /planet/blog/
, потому что она соответствует точнее, хотя location /planet/
также удовлетворяет условиям запроса.
location ~ IndexPage\.php$ { } location ~ ^/BlogPlanet(/|/index\.php)$ { }
Когда после директивы location указана тильда (~), Nginx определяет соответствие по регулярному выражению. Этот поиск всегда чувствителен к регистру. Таким образом, страница IndexPage.php будет соответствовать первому из приведенных выше примеров, а indexpage.php – нет. Во втором примере регулярному выражению будут соответствовать запросы к /BlogPlanet/ и /BlogPlanet/index.php, но не /BlogPlanet, /blogplanet/, или /blogplanet/index.php. В Nginx используются Perl-совместимые регулярные выражения.
Если вы хотите, чтобы поиск не был чувствителен к регистру, после тильды нужно указать звездочку (~*).
location ^~ /images/IndexPage/ { } location ^~ /blog/BlogPlanet/ { }
Если указать перед тильдой символ «крышки» (^~), при соответствии запроса указанной строке сервер прекратит поиск более точных соответствий (даже если они есть) и будет использовать эти директивы. Во всем остальном они аналогичны рассмотренным выше директивам.
location = / { }
Знак равенства (=) после директивы location означает необходимость точного соответствия указанному пути. В случае его наличия поиск прекращается. Например, запрос http://example.com/ будет соответствовать указанному выше примеру, а http://example.com/index.html — нет. Использование точных соответствий может ускорить время обработки запроса, если какие-то запросы распространены больше других.
Директивы обрабатываются в следующем порядке:
- Сначала обрабатываются точные соответствия строк. Если соответствие найдено, Nginx прекращает поиск и отвечает на запрос.
- Обрабатываются оставшиеся директивы с точно заданными строками. Если Nginx находит соответствие директиве с аргументом ^~, он прекращает поиск и отвечает на запрос. В противном случае обработка директив location продолжается.
- Обрабатываются директивы location с регулярными выражениями (~ и ~*). Если запрос соответствует регулярному выражению, Nginx прекращает поиск и отвечает на запрос.
- Если соответствия регулярным выражениям не найдено, используется наиболее точное соответствие из жестко заданных строк.
Убедитесь, что каждый файл или папка в домене соответствуют условиям хотя бы одной директивы location.
Внутри блока location указываются собственные директивы, например:
location / { root html; index index.html index.htm; }
В данном примере корень документов находится в директории html/. При установке Nginx в месторасположение по умолчанию она находится в /etc/nginx/html/
. В директиве root также можно использовать абсолютный путь.
Запрос: http://example.com/blog/includes/style.css
Ответ: Nginx попытается передать клиенту файл /etc/nginx/html/blog/includes/style.css
Переменная index сообщает Nginx, какой файл передавать, если клиент не указал конкретное имя, например:
Запрос: http://example.com
Ответ: Nginx попытается передать файл /etc/nginx/html/index.html
.
Если в директиве index указано несколько файлов, Nginx пройдет по списку и передаст первый существующий файл. Если файла index.html в соответствующей директории нет, будет передан index.htm. В случае если ни один из файлов не существует, будет отправлено сообщение об ошибке 404.
Вот более сложный пример набора директив location для сервера example.com:
location / { root /srv/www/example.com/public_html; index index.html index.htm; } location ~ \.pl$ { gzip off; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_index index.pl; fastcgi_param SCRIPT_FILENAME /srv/www/example.com/public_html$fastcgi_script_name; }
В данном примере все запросы ресурсов, которые заканчиваются на расширение .pl, будут обработаны вторым блоком location, в котором для ответа на эти запросы задан обработчик fastcgi. Ресурсы расположены в файловой системе /srv/www/example.com/public_html/
. Если имя файла в запросе не указано, Nginx найдет и передаст файл index.html или index.htm. Если их нет, он выдаст ошибку 404.
Разберем ответы на некоторые запросы
Запрос: http://example.com/
Ответ: /srv/www/example.com/public_html/index.html
если файл существует. Если нет, сервер передаст /srv/www/example.com/public_html/index.htm
. Если и этот файл не существует, Nginx выдаст ошибку 404.
Запрос: http://example.com/blog/
Ответ: /srv/www/example.com/public_html/blog/index.html
если файл существует. Если нет, сервер передаст /srv/www/example.com/public_html/blog/index.htm
. Если и этот файл не существует, Nginx выдаст ошибку 404.
Запрос: http://example.com/tasks.pl
Ответ: Nginx воспользуется обработчиком FastCGI для выполнения файла /srv/www/example.com/public_html/tasks.pl
и выдаст результат.
Запрос: http://example.com/username/roster.pl
Ответ: Nginx воспользуется обработчиком FastCGI для выполнения файла /srv/www/example.com/public_html/username/roster.pl
и выдаст результат.
Заключение
Мы разобрали базовые принципы и параметры конфигурации веб-сервера Nginx. Этого достаточно, чтобы настроить простой сайт. Для более подробной информации о директивах файлов конфигурации стоит изучить официальную документацию Nginx.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Каталог приложений cPanel :: Engintron (Nginx на cPanel)
Engintron для cPanel / WHM — это самый простой способ интегрировать Nginx на ваш сервер cPanel / WHM. Engintron улучшит производительность и возможности веб-обслуживания вашего сервера, одновременно снизив нагрузку на ЦП / ОЗУ. Это достигается путем установки и настройки популярного веб-сервера Nginx для работы в качестве прокси-сервера обратного кэширования для статических файлов (таких как CSS, JS, изображения и т. Д.) С дополнительным слоем микрокеша для значительного повышения производительности динамического контента, генерируемого такими CMS, как WordPress. , Joomla или Drupal, а также программное обеспечение для форумов, такое как vBulletin, phpBB, SMF или решения для электронной коммерции, такие как Magento, OpenCart, PrestaShop и другие.
—
ENGINTRON ЯВЛЯЕТСЯ NGINX НА CPANEL, СДЕЛАНО ПРАВИЛЬНО!
Nginx® — это мощный веб-сервер с открытым исходным кодом, который был создан для масштабирования веб-сайтов для миллионов посетителей. cPanel® — ведущая панель управления хостингом в мире.
Engintron интегрирует Nginx в cPanel, поэтому вы можете наслаждаться потрясающей производительностью своих сайтов, не жертвуя важными функциями хостинга, которые есть в cPanel.
А лучше всего? Engintron можно использовать совершенно бесплатно!
НО ПОЧЕМУ ВЫ ДОЛЖНЫ ИСПОЛЬЗОВАТЬ NGINX НА СВОЕМ СЕРВЕРЕ CPANEL?
cPanel по умолчанию использует веб-сервер Apache для обслуживания веб-сайтов.Однако известно, что Apache плохо работает при интенсивном веб-трафике (особенно при скачках трафика), а также требует большого количества ресурсов ЦП / ОЗУ. Итак, как можно смягчить эти проблемы? Ответ прост: развернуть Nginx, еще одно популярное программное обеспечение для веб-серверов, перед Apache. Nginx действует как прокси-сервер веб-трафика, напрямую обслуживая все статические ресурсы, такие как CSS, JS, изображения и т. Д. По умолчанию, вместо Apache. Это значительно снижает ресурсы ЦП / ОЗУ, потребляемые Apache, оставляя вашему серверу больше доступных ресурсов для других задач или, что еще лучше, оставляет место для размещения большего количества веб-сайтов.
Способ, которым Engintron настраивает Nginx внутри вашей cPanel, очень похож на то, как работает популярный CloudFlare CDN. Nginx (например, CloudFlare) напрямую обслуживает весь статический контент, такой как CSS, JS, изображения и т. Д., Вместо вашего фактического веб-сервера, тем самым снижая нагрузку на ваш сервер cPanel. Но в отличие от CloudFlare, который требует, чтобы все ваши домены были настроены с помощью этой службы, вы делаете все на своем сервере cPanel. А еще лучше? У вас также есть дополнительный уровень кеширования на случай скачков трафика не только на одном веб-сайте, но и полностью на вашем сервере.Этот дополнительный уровень кеширования называется «микрокеш», и он кэширует только запросы GET и HEAD (никогда не запросы POST), что означает, что его можно использовать на любом типе веб-сайта, будь то небольшой динамический корпоративный веб-сайт Joomla или WordPress. blog на более сложный новостной портал, форум или веб-сайт электронной коммерции, который требует от пользователей входа в систему и обработки персонализированного контента или даже создания контента. Таким образом, 1-секундная установка решения Engintron для «микрокеширования» с Nginx идеально подходит для любого типа веб-сайтов и может увеличить количество одновременных запросов, обслуживаемых вашим сервером cPanel, с нескольких сотен в секунду (с использованием только Apache) до тысяч (с использованием Nginx в перед Apache).
Не только увеличится ваша обслуживающая способность, но и значительно упадет нагрузка на ваш сервер 🙂
Если вы столкнулись с проблемами производительности вашего сервера cPanel, Engintron — ваше решение. И на самом деле это действительно решение типа «установил и забыл», поскольку вы настроите его один раз, а затем оно будет запускаться на вашем сервере без какого-либо дополнительного обслуживания с вашей стороны.
Если вы можете подписаться на сервер cPanel / WHM в любой хостинговой компании и пройти через WHM, то настройка Engintron должна быть для вас легкой задачей.Если вы не управляете своим сервером cPanel, вы всегда можете (любезно) попросить свою хостинговую компанию или системного администратора взглянуть на Engintron и развернуть его на своем сервере cPanel. На самом деле это займет всего несколько минут, и после этого не нужно настраивать стандартные оптимизации, предлагаемые Nginx.
ПОЧЕМУ ENGINTRON — ЛУЧШЕЕ РЕШЕНИЕ ПО СРАВНЕНИЮ С ДРУГИМИ УСТАНОВКАМИ NGINX ДЛЯ CPANEL
Есть 9 ключевых отличий при сравнении Engintron с другими установщиками Nginx для cPanel.
Прежде всего, кеширование действительно работает с Engintron. Он работает так, как должен, и работает универсально. Вы устанавливаете его, и ВСЕ ваши веб-сайты cPanel будут ускоряться, даже самые медленные. Мало того, ваша обслуживающая способность значительно увеличится. Простые тесты Apache Benchmark (ab) показывают феноменальное увеличение количества одновременных запросов, обслуживаемых в секунду, с 3–300 в Apache до 15 000–20 000 или даже больше при использовании Nginx через Engintron. Именно наша тщательно созданная конфигурация «черного ящика» творит всю магию.И он практически не требует обслуживания.
Во-вторых, Engintron — это сценарий с одной оболочкой (весом всего несколько КБ), который устанавливает все необходимое программное обеспечение (чтобы Nginx работал должным образом) из репозиториев официальных поставщиков пакетов программного обеспечения. И установка, и обновления выполняются очень быстро (они занимают всего несколько секунд).
В-третьих, поскольку мы используем официальные репозитории для Nginx, все программное обеспечение Engintron обновляется каждый раз при обновлении cPanel (или программного обеспечения сервера).Таким образом, вы по сути устанавливаете это и забываете. Каждый раз, когда вы выполняете «yum update / upgrade» или обновляете серверное программное обеспечение из WHM, Nginx будет обновляться, если доступна новая версия. Если что-то изменилось в Engintron и вам нужно переустановить его, вы просто установите его поверх предыдущей установки. Вам не нужно сначала удалять его, как это делают другие плагины установщика Nginx для cPanel! Да, и это работает в CentOS 6 и 7, а также в CloudLinux 6 и 7.
В-четвертых, вы можете безопасно удалить Engintron, и вернет всей вашей системе к состоянию до того, как вы установили Engintron.Просто как тот. Это означает, что вы можете попробовать Engintron, и если он вам не нравится или вы обнаружите, что он не соответствует вашим потребностям, вы можете просто удалить его. Ваша система вернется к тому, что было раньше. Период.
В-пятых, у него есть удивительно простая, но практичная панель инструментов внутри WHM со всеми основными элементами управления для Nginx, Apache, MySQL, возможность редактировать все важные файлы конфигурации для этих 3 сервисов и даже некоторые удобные утилиты, которые делают Engintron приборной панелью в cPanel. для повседневных задач системного администратора.Думайте об этом как об управлении миссией вашего сервера cPanel. И мы упоминали, что вы можете легко обновить Engintron из WHM? Ага! Вы даже получаете уведомления об обновлениях, когда доступна новая версия.
В-шестых, это дружественный к CloudFlare. Поскольку и CloudFlare, и Engintron используют Nginx в качестве прокси-сервера обратного кэширования, если мы не настроим Nginx в cPanel для правильной работы в качестве вторичного прокси (конечно, после CloudFlare), есть вероятность, что CloudFlare взбесится и обслужит ваши сайты с ошибками 10xx.Итак, если у вас есть какие-либо домены, размещенные на вашем сервере cPanel, которые используют CloudFlare для своей CDN, вы просто устанавливаете IP-адреса своих серверов в файле конфигурации Nginx «custom_rules» (файл прокомментирован для вашей помощи) и просто перезапускаете Nginx для внесения изменений в вступят в силу. Все это, конечно, делается полностью внутри WHM.
В-седьмых, не требуется синхронизация виртуальных хостов Nginx / Apache при добавлении новых доменов через cPanel. Вот почему вы, по сути, «установили и забыли». Взгляните на другие установщики Nginx… ‘Но сказал;)
В-восьмых, Engintron позволяет трафику HTTP и HTTPS полностью проходить через Nginx, начиная с версии 1.8.0.
И девятое, Engintron — это 100% открытый код. Вы можете разорвать его на части, настроить, разложить вилкой, ножом или внести свой вклад в его развитие. Делайте с ним что хотите 🙂
ОК, ПРОДАН! КАК УСТАНОВИТЬ ENGINTRON НА СЕРВЕР CPANEL?
Наш репозиторий GitHub всегда в курсе последней информации об установке Engintron.Пожалуйста, посмотрите здесь: https://github.com/engintron/engintron#ok-im-sold-how-do-i-install-engintron-on-my-cpanel-server
FAQ — ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Подробнее здесь: https://github.com/engintron/engintron#faq
ДОКУМЕНТАЦИЯ
Для получения дополнительной информации об установке, настройке или удалении, а также других советов по оптимизации cPanel посетите вики-страницы проекта по адресу: https: // engintron.com / docs
ОБРАТНАЯ СВЯЗЬ, ОШИБКИ, ЗАПРОСЫ И РЕЙТИНГ
Пожалуйста, размещайте свои отзывы и любые проблемы или запросы / предложения в системе отслеживания проблем проекта по адресу: https://github.com/engintron/engintron/issues
Если вы используете Engintron, пожалуйста, найдите время, чтобы опубликовать рейтинг и / или просмотреть здесь, в каталоге приложений cPanel.
ИЗМЕНЕНИЕ
Полный список изменений выпуска доступен на Github: https: // engintron.ru / docs / # / pages / История изменений
ЛИЦЕНЗИЯ
Engintron выпущен под лицензией GNU / GPL. Дополнительную информацию можно найти здесь: http://www.gnu.org/copyleft/gpl.html
.
НУЖНА КОММЕРЧЕСКАЯ ПОДДЕРЖКА — ВЫ ПРЕДЛАГАЕТЕ ТАКИЕ УСЛУГИ?
Если вы хотите пройти «лишнюю милю» и оптимизировать свой сервер cPanel как через Engintron, так и через другие службы, которые напрямую влияют на производительность вашего сервера cPanel (MySQL / MariaDB, Apache, PHP, некоторые файлы конфигурации системы и т. Д.) , не стесняйтесь использовать возможности связи в Engintron, чтобы связаться с нами.
Или вы можете просто написать нам по электронной почте: engintron [at] gmail [dot] com
.
Как установить NGINX на cPanel
В этой статье мы расскажем, как установить популярное программное обеспечение веб-сервера NGINX на вашу учетную запись VPS или выделенного хостинга. Установка NGINX позволяет вашему веб-серверу кэшировать контент и повышать производительность сервера. В конечном итоге это приводит к тому, что веб-сайты становятся быстрее и удобнее для конечных пользователей. Процесс установки NGINX требует доступа как root WHM , так и SSH и рекомендуется только для пользователей, знакомых с интерфейсами командной строки (CLI) .Поскольку для этого процесса требуется доступ на уровне root, он может выполняться только на учетных записях VPS или выделенного хостинга.
Эта статья будет охватывать:
** Примечание: Если вам нужна помощь в внесении изменений в ваш сервер, мы предлагаем профессиональные услуги управляемого хостинга.
Изменить порты прослушивания
- Войдите в WHM как пользователь root.
- Щелкните ссылку Tweak Settings в разделе Server Configuration .
- На странице Tweak Settings щелкните «>» для прокрутки, затем щелкните вкладку System , когда увидите ее.
- Прокрутите вниз до параметров Apache non-SSL IP / port и установите флажок, чтобы изменить порты. Поскольку мы хотим установить порты прослушивания на 8080 для серверов InMotion, введите следующее:
0.0.0.0:8080
- Перейдите к настройке порта SSL Apache и установите флажок, чтобы изменить порты.Поскольку InMotion использует порт 8443 , введите следующее:
0.0.0.0:8443
- Прокрутите страницу вниз и нажмите кнопку Сохранить , чтобы открыть порты прослушивания.
Установка NGINX
- Подключитесь к вашему серверу как пользователь root через SSH.
- Выполните следующую команду, чтобы установить NGINX :
yum install imh-nginx
- Вы увидите следующее сообщение, введите « y », затем
нажмите кнопку , введите .Установить 1 пакет Общий размер загрузки: 484 КБ Установленный размер: 1,3 м Это нормально [г / д / н]: y
NGINX был установлен успешно, когда вы видите такое сообщение:
Установлено: imh-nginx.x86_64 0: 1.13.3-2.el7 Готово!
- Выполните следующую команду, чтобы настроить NGINX для вашего сервера.
yum install imh-ngxconf
- Вы увидите следующее сообщение: введите « y », затем нажмите кнопку , введите .
Установить 1 пакет Общий размер загрузки: 43 КБ Установленный размер: 103 k Это нормально [г / д / нет]: y
NGINX был настроен , когда вы видите такое сообщение:
Установлено: imh-ngxconf.noarch 0: 0.9.10-9.el7 Готово!
- Поздравляем, вы установили NGINX!
Дополнительные ресурсы по NGINX
Чтобы в полной мере использовать все возможности NGINX, посетите следующие ресурсы:
.
бесплатных модулей Nginx для cPanel и WHM
Как мы все знаем, cPanel еще не полностью поддерживает Nginx, она будет готова в будущем, поскольку это одна из наиболее востребованных функций со стороны пользователей. Однако пока что, если вы хотите установить Nginx на cPanel, вам придется использовать сторонние модули.
Nginx почти в 2 раза быстрее Apache при обслуживании запросов, он отлично обрабатывает статические запросы и даже динамические запросы при интеграции с демоном php-fpm.
cPanel — одна из наиболее широко используемых панелей управления в индустрии веб-хостинга, и установка Nginx в cPanel может дать вам огромный прирост скорости и производительности сервера, поскольку он потребляет меньше ресурсов, чем Apache.
Почему я должен переключаться с Apache на Nginx на моем сервере cPanel?
cPanel всегда использует веб-сервер Apache HTTPD. И, как мы все знаем, Apache работает медленно.
Когда трафик на вашем сервере начинает расти, веб-сайты становятся популярными или у вас просто много веб-сайтов на сервере cPanel, ваша веб-производительность начинает снижаться. Apache полезен, если у вас небольшое количество веб-сайтов, однако, когда у вас есть сотни веб-сайтов, это не идеальный http-сервер для запуска внутри вашего окна cPanel (если у вас нет много денег для обновления ваших аппаратных ресурсов).
Nginx приходит на помощь вашему серверу cPanel. Это не означает, что вам нужно полностью заменить Apache, вы даже можете использовать Nginx в качестве внешнего прокси, чтобы помочь Apache обрабатывать статические ресурсы ваших веб-сайтов.
Это один из самых классических способов использования Nginx на cPanel в качестве прокси. Nginx будет обслуживать все статические вещи, такие как изображения js, css, png, gif, jpeg, и вы по-прежнему можете использовать старый Apache для динамического содержимого PHP.
Такая установка значительно снизит использование оперативной памяти и процессора, и ваши сайты будут работать быстрее, и все мы знаем, что Google любит быстрые веб-сайты 🙂
Снимок экрана Engintron, одного из лучших модулей Nginx для cPanel
Лучшие модули Nginx для cPanel и WHM
Давайте посмотрим, какие из них являются лучшими модулями Nginx для серверов cPanel, некоторые из этих модулей бесплатны, а другие являются коммерческими, но оба позволяют достичь вашей цели: установить nginx на cpanel.
1. Engintron
Engintron — один из лучших бесплатных модулей Nginx для cPanel и WHM. Позволяет легко установить nginx на cpanel без каких-либо технических знаний.
Он поддерживает прокси-сервер с обратным кэшированием, автоматическое обновление Nginx и очень интересную веб-панель, с которой вы можете управлять своими ИТ-сервисами, такими как Nginx, PHP и MySQL.
2. NginxCP
NginxCP — наш второй любимый бесплатный модуль Nginx для cPanel, это был один из первых плагинов, предлагающих Nginx на cPanel.
NginxCP имеет действительно приятный интерфейс WHM, с помощью которого вы можете управлять своими виртуальными хостами Nginx, также вы можете настроить php-fpm, а также кеш прокси и кеш php-fpm.
3. cPnginx
cPnginx был одним из первых коммерческих модулей Nginx для cPanel. Это действительно надежный модуль, который поможет вам настроить Nginx на cPanel, с этим модулем вы наверняка получите максимальную производительность для своего сервера cPanel.
Основные функции: Nginx автоматически обновляется, круглосуточная техническая поддержка, API, доступный для разработчиков, и полный модуль WHMCS для интеграции с вашей системой биллинга / поддержки.
Это стоит 5 долларов в месяц, это действительно небольшие деньги, если подумать об огромных преимуществах, которые он может дать вам.
4. XtendWeb
Это довольно новый модуль Nginx для серверов cPanel.
Xtendweb предлагает встроенную настройку веб-приложений Nginx, его можно настроить для взаимодействия с динамическими демонами PHP, такими как HHVM или PHP-FPM, а также Phusion Passenger для таких языков, как Python / NodeJS / RoR.
Одна интересная вещь, предлагаемая с XtendWeb, — это возможность развертывать приложения на нескольких серверах, не знаю, как они это делают (из-за того, что даже собственное программное обеспечение cPanel не поддерживает это), но выглядит многообещающей функцией, необходимой для многие пользователи Nginx + cPanel.
Xtendweb также поставляется со встроенной системой защиты от DDOS-атак на уровне 7, и пользователи могут защищать свои веб-сайты с помощью правил WAF из ModSecurity или NAXSI.
Заключение
На сегодня все. Надеюсь, вы сможете использовать один из этих модулей Nginx для повышения производительности вашего сервера cPanel.
Пока cPanel не прибудет со встроенной встроенной поддержкой Nginx, нам придется полагаться на сторонние модули.
А если вы уже запускаете Nginx на cPanel, каков ваш опыт работы с ним в качестве прокси? Вы заметили более низкое использование ЦП и ОЗУ?
.
Как установить NGINX на cPanel
Вы можете легко установить NGINX на свой сервер cPanel через интерфейс командной строки (CLI). Это позволяет использовать NGINX в качестве веб-сервера. В этом руководстве мы проведем вас через установку NGINX на ваш сервер cPanel. Сначала мы покажем вам, как изменить порты прослушивания в WHM. Затем мы покажем вам, как выполнить установку и настройку NGINX через SSH. Для выполнения этого руководства вы должны быть на VPS или выделенном сервере.
** Примечание: Если вам нужна помощь в внесении изменений в ваш сервер, мы предлагаем профессиональные услуги по управлению хостингом.
Изменить порты прослушивания
- Войдите в WHM как пользователь «root».
- Щелкните ссылку Tweak Settings в разделе Server Configuration .
- На странице Tweak Settings щелкните стрелку вправо для прокрутки, затем щелкните вкладку System , когда вы ее увидите.
- Прокрутите вниз до параметров Apache non-SSL IP / port и установите флажок, чтобы изменить порты.Поскольку мы хотим установить порты прослушивания на 8080 для серверов InMotion, введите следующее:
0.0.0.0:8080
- Перейдите к настройке порта SSL Apache и установите флажок, чтобы изменить порты. Поскольку InMotion использует порт 8443 , введите следующее:
0.0.0.0:8443
- Прокрутите страницу вниз и нажмите кнопку Сохранить , чтобы открыть порты прослушивания.
Установка NGINX
- Подключитесь к вашему серверу как пользователь root через SSH.
- Выполните следующую команду, чтобы установить NGINX.
yum install imh-nginx
- Вы увидите следующее сообщение, введите « y », если да, затем нажмите кнопку , введите .
Установить 1 пакет Общий размер загрузки: 484 КБ Установленный размер: 1,3 м Это нормально [г / д / н]: г NGINX был успешно установлен, когда вы видите сообщение Complete! сообщение, подобное этому: Установлен: imh-nginx.x86_64 0: 1.13.3-2.el7 Готово!
- Выполните следующую команду, чтобы настроить NGINX для вашего сервера.
yum install imh-ngxconf
- Вы увидите следующее сообщение, введите « y », если да, затем нажмите кнопку , введите .
Установить 1 пакет Общий размер загрузки: 43 КБ Установленный размер: 103 k Это нормально [г / д / н]: г NGINX был настроен , когда вы видите Complete! сообщение, подобное этому: Установлен: imh-ngxconf.noarch 0: 0.9.10-9.el7 Готово!
Поздравляем, теперь вы знаете, как установить NGINX на свой VPS или выделенный сервер!
.