Выбираем панель управления хостингом

в 8:21, , рубрики: ajenti-v, control panel, cpanel, ispconfig, ispmanager, plesk manager, selectel, vesta, Блог компании Селектел, панель управления хостингом, селектел, системное администрирование, хостинг

panels

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

Как отдельный продукт панели управления хостингом стали широко использоваться в конце 1990-х годов. За прошедшее с тех пор время они очень изменились и усовершенствовались. Сегодня на рынке представлено огромное количество решений для управления хостингом — как свободных, так и проприетарных. Как из всего этого многообразия выбрать действительно стоящий продукт?

В Интернете можно найти публикации, в которых сравниваются имеющиеся панели (вот, например, неплохой переводной материал; см. также здесь). Мы решили составить собственный обзор, в котором акценты расставлены несколько по-иному, чем в опубликованных ранее. Одним из основных критериев, положенных в основу нашего обзора, является поддержка панелями веб-серверов и их комбинаций. Кроме того, в нашей статье мы рассматриваем продукты, в публикации по ссылкам выше не вошедшие.

ISP Manager

Разработчик: компания ISP System
Первая версия: 1997 год
Последняя версия: 5.17.4 (июль 2014 года)
Поддерживаемые ОС: Linux, Free BSD, Windows
Лицензия: проприетарная
Официальный сайт: http://ispsystem.com

Для установки ISP Manager достаточно из консоли скачать с официального сайта специальный скрипт и запустить его, а после запуска указать требуемую версию (4 или 5) и редакцию (Lite или Pro). В версии 4 установка осуществляется через консоль, а в версии 5 — по-другому: при выборе минимального варианта на консоль выводится ссылка которую нужно открыть в браузере и продолжить установку, выбрав необходимые компоненты. Отметим, что в отличии от четвертой пятая версия имеет модульную структуру: обязательным является только компонент Core. На его основе уже можно выбирать другие используемые компоненты — например, ISP Manager Pro или Lite (есть и другие компоненты, которые в этой статье рассматриваться не будут). Впрочем, при выборе в консоли рекомендуемого варианта установки все необходимые компоненты будут установлены автоматически.

По умолчанию используется веб-сервер Apache. Nginx устанавливается дополнительно (для этого нужно просто перейти в раздел «Настройка сервера» -> «Возможности»):

ipsmanager_nginx_install_1

После установки он автоматически становится фронтендом, а Apache — бэкендом. Делается это для того, чтобы разделить разные функции между Nginx и Apache: Nginx очень хорошо справляется с поддержкой множества сессий и отдачей статичного контента (картинки, музыка, видео и т.д.), Apache обладает широкими возможностями поддержки динамических данных.
После этого Apache начнет слушать на 81 порту (в пятой версии — на 8080), что дает возможность обращаться к нему напрямую, не задействуя при этом Nginx. Для этого нужно просто указать в адресной строке браузера нужный порт, например example.com:81/.

Из соображений безопасности после установки Nginx желательно с помощью iptables заблокировать доступ к серверу по 81 порту, оставив в качестве разрешенных только локальный (127.0.0.1) и внешний IP-адрес сервера. Это можно сделать в самой панели через графический интерфейс в разделе брандмауэра:

ispmanager_81port

Некоторые пользователи предпочитают в этом случае изменить адрес для apache на локальный (127.0.0.1), оставив 80 порт. Не рекомендуется изменять настройки системы, которые могут быть возвращены к стандартным в случае каких-либо обновлений панели управления.

В отличии от версии 4 в версии 5 используется независимый веб-сервер, обеспечивающий работу панели управления и никак не связанный ни с Apache, ни c Nginx. Именно поэтому от использования Apache можно отказаться. Необходимо лишь настроить сайт на работу в связке Nginx + php-fpm. Нужно, однако, учитывать, что php-fpm полностью заменить apache не может. Например, при переходе на php-fpm функции преобразования URL в человекопонятный (реализуемый через mod_rewrite в Apache) вид должны обрабатываться уже веб-сервером Nginx.

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

Также к несомненным достоинствам следует отнести поддержку веб-скриптов в формате APS, с помощью которых для выбранного домена можно установить в полуавтоматическом режиме готовую CMS. От пользователя только потребуется выбрать из списка нужное приложение и указать для него необходимые параметры (создаваемую БД, пользователя, пароль и т.д.).
В числе других преимуществ ISP Manager нужно также назвать наличие широкого набора функций для управления сервером, простоту переноса аккаунтов между хостингами, удобный многоязычный интерфейс, подробную и понятную документацию.

К недостаткам можно отнести ограниченные функции управления брандмауэром и его неактивность по умолчанию. Хотя модуль управления сетевым экраном активируется ещё на этапе установки панели, по умолчанию правила неактивны. Чтобы их активировать, необходимо внести хотя бы одно изменение в список существующих правил из панели управления (например так, как это указано выше).

Plesk Panel

Разработчик: компания SWSoft, сегодня распространяется компанией Parallels
Первая версия: 2003 год
Последняя версия: 12.0.18 u4 (июль 2014 года)
Поддерживаемые ОС: Сentos, OpenSUSE, CloudLinux, RHEL, Debian, Ubuntu, Windows
Лицензия: проприетарная
Официальный сайт: http://sp.parallels.com/ru/products/plesk/

Чтобы установить Plesk Panel, достаточно скачать с официального сайта установочный скрипт и запустить его из консоли.

«Из коробки» поддерживается связка Nginx + Apache, никакой дополнительной настройки не требуется. Можно сразу создавать домен и загружать содержимое сайта. Если после установки панели установить еще и дополнительный модуль файервола, то сразу же будут задействованы правила, ограничивающие доступ к веб-серверу Apache.

Работа в режиме Nginx + php-fpm возможна, но для этого нужно установить компонент поддержки php-fpm cо страницы установки и обновления Parallels:

plesk_phpfpm_1

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

plesk_phpnginx_1

Как и ISP Manager, Plesk Panel позволяет устанавливать необходимые веб-приложения (APS) из самой панели управления, сведя, тем самым, действия пользователя по подготовке сайта к минимуму.

plesk_aps

Из достоинств Plesk стоит выделить удобный интерфейс, богатый набор функций, наличие многочисленных расширений (addons), устанавливаемых непосредственно из панели управления.

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

Ajenti

Разработчик: Евгений Паньков
Первая версия: 2010 год
Последняя версия:1.2.20 (апрель 2014 года)
Поддерживаемые ОС: Debian 6.0 и выше, Ubuntu 10.04 и выше, CentOS 6.0, RHEL, FreeBSD, ArchLinux, Gentoo
Лицензия: GNU LGPL
Официальный сайт: http://ajenti.org/

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

Чтобы установить Ajenti, достаточно скачать с официального сайта скрипт и запустить его на выполнение. Нужный репозиторий будет подключен автоматически; из него будут установлены все необходимые пакеты. Пакеты Ajenti-V нужно устанавливать отдельно:

# apt-get install ajenti-v ajenti-v-nginx ajenti-v-mysql ajenti-v-php-fpm
# service ajenti restart

По умолчанию Ajenti-v рассчитан на работу с веб-сервером Nginx в связке с php-fpm, wsgi, puma, unicorn, node.js. Apache поддерживается, но эта поддержка минимальная: пользователь получает лишь доступ к конфигурационному файлу, отвечающему за работу выбранного домена:

ajeinti_apache_config

Nginx в этом случае должен быть настроен на работу в качестве reverse proxy:

ajenti_nginx

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

Интерфейс для настройки встраиваемых интерпретаторов (например, php-fpm или uwsgi) устроен лучше, но и здесь велика вероятность столкнуться с разного рода неожиданностями. Но после первого знакомства опытные пользователи смогут оценить этот минималистичный подход и его удобство.

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

Единственным значительным минусом являются уже упомянутые выше сложности с редактированием конфигурационных файлов для неопытных пользователей.
Проект интенсивно развивается и улучшается с каждой новой версией. Мы считаем Ajenti вполне перспективным продуктом и рекомендуем к ознакомлению.

Vesta CP

Разработчик: компания Vesta
Первая версия: 2012 год
Последняя версия: 0.9.9 −1 (август 2014 года)
Поддерживаемые ОС: RHEL 5.x, 6.x; CentOS 5.x, 6.x; Debian 7;
Ubuntu LTS 12.04, Ubuntu 12.10, Ubuntu 13.04, Ubuntu 13.10
Лицензия: GNU GPL; дополнительная поддержка оказывается платно
Официальный сайт: http://vestacp.com/

Как и в случае с предыдущими панелями, для установки достаточно скачать скрипт и запустить его на выполнение. Далее все происходит в автоматическом режиме. При необходимости подключаются дополнительные репозитории. Если какие-либо нужные компоненты уже были установлены ранее, то в директории /root/vst_install_backup будут сохранены резервные копии всех конфигурационных файлов, которые были затронуты при их установке.

От всех рассмотренных выше панелей Vesta CP отличается во-первых, тем, что в ней все операции, выполняемые через браузер, можно также выполнять и через консоль, а во-вторых — тем, что в ней используется модуль Apache mod_ruid2. Все консольные утилиты располагаются в директории /usr/local/vesta/bin/; иx имена начинаются с префикса «v-», например v-add-user, v-change-database-password и т.д.

Уже упомянутый выше модуль Apache mod_ruid2 заслуживает отдельного рассмотрения. О нем можно написать целую статью; здесь мы ограничимся лишь кратким описанием, но этого будет вполне достаточно, чтобы понять специфику Vesta CP. Когда на одном сервере сосуществуют множество пользователей, а  все их сайты обслуживаются только одним веб-сервером, возникает проблема разграничения прав при исполнении php-скриптов. Обычно эта проблема решается путем исполнения скриптов через suexec и suphp. Преимуществом mod_ruid2 является то, что он работает напрямую с mod_php, что обеспечивает более высокую скорость выполнения.

Также для mod_ruid2 можно указать дополнительную группу (например, ту, от имени которой запущен процесс Apache) — это иногда может потребоваться для установки некоторых CMS.
У этого модуля есть существенный недостаток: при наличии уязвимостей через него возможно теоретически получить root-доступ. Сам разработчик mod_ruid2 для обеспечения безопасности предлагает использовать патчи ядра grsecurity.
Несмотря на то, что этот модуль находится еще в несколько «сыром» состоянии, он становится все более распространенным и популярным. Об этом может свидетельствовать хотя бы то, что он уже используется в панели CPanel в качестве одного из обработчиков php.

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

vesta_nginx_1

Поддержки режима Nginx + php-fpm на данный момент ещё нет, реализация обещана в ближайшем релизе.

Несмотря на минималистичность интерфейса, VestaCP предоставляет все необходимые средства для создания и управления сайтом: управление пользователями, создание доменов и баз данных. Некоторые операции (такие, например, как настройка параметров php) при этом все равно придется выполнять с помощью консоли. Из достоинств VestaCP выделим быструю с точки зрения пользователя работу, простоту установки и обновления, хороший форум технической поддержки.
Из недостатков можно выделить только один: отсутствие хотя бы краткого описания шаблонов из списка, задаваемых для Apache, Nginx и DNS. Впрочем, этот минус не такой уж существенный: всю необходимую информацию можно найти в официальной документации, а предлагаемые по умолчанию шаблоны подходят для большинства случаев.
Vesta CP интенсивно развивается; будем надеяться, что в ближайшее время она станет более функциональной и удобной.

CPanel

Разработчик: компания cPanel Inc.
Первая версия: 1996 год
Последняя версия: 11.44.1.17 (август 2014 года)
Поддерживаемые ОС: Сentos 5.x, 6.x, RHEL 5.x, 6.x, CloudLinux 5.x, 6.x, FreeBSD (с 30.09.2012 поддержка прекращена), есть версия для Windows (с февраля 2014 не поддерживается)
Лицензия: проприетарная
Официальный сайт: http://cpanel.net/

От упомянутых выше панелей CPanel отличается сложной процедурой установки. Прежде чем скачать с официального сайта и запустить установочный скрипт, потребуется осуществить предварительную подготовку: отключить SELinux, установить Perl, задать полное имя домена (fqdn) в файлах /etc/sysconfig/network и /etc/hosts.

Во время установки все необходимые для работы веб-сервера компоненты собираются из исходных кодов. Все это по понятным причинам делает процесс установки очень долгим.

В состав СPanel входят два компонента: собственно CPanel и WHM. WHM представляет собой веб-интерфейс для «суперадминистратора», с помощью которого можно получить доступ ко всем настройкам среды — например, задать важные параметры, влияющие на производительность Apache (max_clients, min/max spare servers и другие), доступ ко всем возможным опциям php и др. Несомненное удобство заключается в том, что настройки можно изменять через веб-интерфейс, а не редактировать вручную конфигурационные файлы. Однако для того, чтобы новые настройки вступили в силу, в некоторых случаях может потребоваться пересборка отдельных компонентов.

Для настройки веб-сервера используется инструмент WHM EasyApache. C его помощью можно выбрать конкретный профиль — набор возможностей, который будет поддерживать сервер. Если выбрать, например, профиль Basic, то все запросы будут обрабатываться при помощи стандартного модуля mpm_prefork. Если же выбрать профиль MPM ITK, то будет использован модуль mpm_itk, повышающий безопасность работы веб-сервера за счет разделения процессов по пользователям:

cpanel_easy.apache

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

cpanel_cpanel

«Из коробки» CPanel поддерживает только веб-сервер Аpache. Поддержка других веб-серверов реализуется с помощью сторонних плагинов и расширений, как проприетарных, так и свободных.
Чтобы использовать Nginx в качестве фронтенда к Apache, можно, например, прибегнуть к помощи плагина Nginx Admin. Для установки этого плагина нужно скачать tar-архив, распаковать его и запустить специализированный скрипт. Заметим, что в последних версиях CPanel с установкой Nginx Admin могут возникнуть проблемы. Можно также воспользоваться расширением ApacheBooster или проприетарным плагином cPnginx. Поддержка связки Nginx + php-fpm реализуется при помощи плагина cpXstack.

Благодаря тому, что CPanel ориентирована на работу с веб-сервером Apache, удается обеспечить широкие возможности для гибкой настройки и конфигурирования. Гибкость обеспечивается за счет создания самостоятельного окружения с пересборкой в случае необходимости. Работа с WHM требует от пользователя определенных знаний и опыта, но в большинстве случаев настроек по умолчанию вполне достаточно.

В последних версиях (начиная с 11.44) добавлена возможность централизованного управления с главного сервера другими серверами с предустановленной WHM, названная кластером конфигураций (Cluster Configuration, сходная с подобным режимом в ISPConfig — см. ниже). Возможности работы в кластере расширяются; постепенно добавляются новые функции.

В числе несомненных преимуществ CPanel следует назвать поддержку широкого набора ПО, локализацию на более 20 языков, многоуровневое управления пользователями и расширенную функциональность для реселлинга.

Обратной стороной гибкости настройки и управления оказывается более низкая (по сравнению с упомянутыми выше панелями) производительность.

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

ISPConfig

Разработчик: projektfarm GmbH
Первая версия: 2007 год
Последняя версия: 3.0.5.4 (август 2014 года)
Поддерживаемые ОС: Debian, Ubuntu, CenOS, OpenSUSE, Fedora
Лицензия: BSD
Официальный сайт: http://www.ispconfig.org/

ISPConfig устанавливается не так, как все описанные выше панели управления: сначала устанавливается все необходимое ПО (веб-сервер, СУБД, FTP, почтовая система), и только затем с помощью специального скрипта устанавливается сама панель управления. С подробной инструкцией по ручной установке и настройке под различные конфигурации и дистрибутивы можно ознакомиться на сайте howtoforge.com (см. также более упорядоченный вариант).

Такой подход дает возможность поддерживать большее количество дистрибутивов, а также реализовать функции, недоступные для большинства ПУ. Например, имеется возможность работы в своеобразном кластере из нескольких серверов, на которых установлен ISPConfig; при этом один из них является главным и управляет всеми остальными. В таком режиме работы при создании пользователя и домена можно сразу указать, на каком именно сервере будут храниться его данные. Можно также разделить функции между серверами: один будет отвечать за работу БД, другой — за основной веб-сервер, выполняющий динамическую обработку запросов, а третий — за фронтенд, принимающий запросы пользователей.

Так как подготовка среды осуществляется еще до установки самой панели, ISPConfig можно установить на систему, где уже работает сервер Nginx либо Apache. ISPConfig может работать с любым из этих серверов, которые к тому же можно настроить удобным для пользователя способом (например, Nginx + php-fpm). Поддержку связки Nginx + Apache можно настроить с помощью специального модуля.

Подготовка веб-сервера и его окружения — задача рутинная и довольно непростая, но ее можно ускорить и автоматизировать с помощью специальных скриптов. На сервер с OC Debian или Ubuntu ISPConfig можно установить c помощью cкрипта ISPConfig3-Debian-Installer. Скрипт работает как с сервером Apache, так и с Nginx. Существует и скрипт для работы со связкой Nginx + Apache.

К числу несомненных достоинств панели относятся поддержка кластерного режима и стандарта APS — функции, которые встречаются в основном у проприетарных продуктов.

Очевидным недостатком CPanel является сложность подготовки сервера к установке и ручная настройка всех компонентов. И хотя на на сайте howtoforge.com представлены подробные пошаговые инструкции, всех сложностей установки это не снимает.

ISPConfig 3.0.5.4p3 - Pentadactyl_002

Заключение

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

Характеристика ISP Manager Plesk WHM/CPanel VestaCP Ajenti-V ISPConfig
Поддерживаемые ОС CentOS > 6
Debian 7
FreeBSD 9
CloudLinux
Windows
CentOS 5-7
Debian 6-7
Ubuntu LTS 10.04-12.04
RHEL 5-7
OpenSUSE 12.3-13.1
CloudLinux 5-6
CentOS 5-6
RHEL 5-6
CloudLinux 5-6
RHEL 5-6
CentOS 5-6
Debian 7
Ubuntu 12.04-14.04
Debian
Ubuntu
RHEL
CentOS
Debian 5-7
CentOS 5-6
Fedora 12-15
OpenSUSE 11.1-13.1
Ubuntu 8.10-14.04
Поддерживаемые веб-серверы Apache
Apache + Nginx
Nginx + php-fpm (для 5 версии)
По умолчанию Apache + Nginx Официально только Apache; Apache + Nginx и Nginx + php-fpm — через сторонние расширения Apache
Apache + Nginx
Nginx + php-fpm
Nginx + uwsgi
Nginx + Puma
Nginx + Unicorn
Nginx + Gunicorn
Nginx + Node.js
Nginx + Apache
Nginx либо Apache, Nginx + Apache — через стороннее расширение
Поддерживаемые БД MySQL
PostgreSQL
MySQL
PostgreSQL
MySQL MySQL
PostgreSQL
MySQL
PostgreSQL
MySQL
Поддерживаемые DNS-серверы Bind Bind Bind
MyDNS
NSD
Bind Bind
NSD
Bind
MyDNS
Управление доменами и поддоменами Полное управление зонами через Bind Полное управление зонами через Bind Выбор сервера: Bind, myDNS, NSD Управление записями через Bind Встроенных средств нет Полное управление зонами через Bind
Настройка и администрирование БД Базовое*
phpMyAdmin
Базовое*
phpMyAdmin
Базовое*
phpMyAdmin
Базовое*
phpMyAdmin
Базовое*
модуль ajenti-mysql
Базовое*
phpMyAdmin
Статистика Awstats Awstats
Webalizer
Analog
Awstats
Awstats
Webalizer
Статистика как таковая отсутствует, ее нужно добавлять через соответствующую запись в конфигурационном файле Awstats
Webalizer
Поддержка APS + + + - - +
Настройки безопасности Встроенное управление файерволлом, антиспам (белые/чёрные списки) Fail2ban, антивирус Касперского, spamassasin (белые и чёрные списки) mod_security (возможность подробной настройки), clamav, cPHulk, защита от брутфорса, jail'ы для vhost apache с помощью mod_ruid2 и cPanel jailshell Встроенных средств защиты нет Встроенный файерволл Встроенное управление firewall'ом, антиспам (белый/чёрный список), fail2ban, RKHunter
Стоимость и условия лицензирования 5 — lite: 190 руб./мес., pro: 570 руб./мес. Приведены официальные цены, у ресселеров цены могут быть ниже Web Host: 35$/мес либо 385$/год, у ресселеров можно приобрести более простые редакции 20$/мес. (200$/год) для VPS. 45$/мес. (425$/год) для выделенных Распространяется под лицензией GNU GPL; дополнительная техническая поддержка оказывается платно Распространяется под лицензией AGPLv3 Распространяется по лицензии BSD

* — под базовым управлением понимаются простые функции по созданию и удалению баз данных и их пользователей.

Если у вас есть замечания и дополнения — добро пожаловать в комментарии. Ждем также комментариев от тех, кто использует панели управления хостингом, в наш обзор не вошедшие. Было бы интересно узнать, почему вы выбрали именно их и в чем, на ваш взгляд, заключаются их преимущества.

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

Автор: burlunder

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js