apnscp (a/k/a «ApisCP») 3.1 был выпущен!
- Кодовое название «Бизнес как обычно»
- 3.1 смещает акцент с широкого внедрения на инновации.
- Этот выпуск охватывает несколько отложенных элементов, которые были предназначены в 3.1, но требовали значительного наращивания других областей для удовлетворительной реализации.
Модернизация
apnscp будет обновляться как часть обычных ночных обновлений (см. UPGRADING.md). Обновление вручную может быть инициировано через upcp. upcp всегда будет придерживаться вашей политики обновления, поэтому убедитесь, что политика установлена на пограничный, основной или все. cpcmd config: get apnscp.update-policy подтвердит политику, а cpcmd config: set apnscp.update-policy major установит политику обновления по умолчанию, включающую все исправления и незначительные обновления.
PHP-FPM
PHP-FPM реализован в виде службы с активированным сокетом в systemd. Активация через сокет порождает рабочий пул только при активности страницы, что уменьшает проблему стада Thundering в массовых развертываниях. PHP-FPM был полностью протестирован на более чем 500 учетных платформах с минимальным влиянием сервиса на запуск.
Эта реализация использует превосходное отслеживание зависимостей systemd для запуска только после того, как MySQL и PostgreSQL еще больше расширяют возможности запуска обоих серверов баз данных. После активации рабочий PHP-FPM привязывается к соответствующей учетной записи либо как непривилегированный системный пользователь, либо — как пользователь cPanel — пользователь учетной записи; однако эта практика крайне не рекомендуется. Документация описана в PHP-FPM.md.
TimescaleDB
Массивная агрегация данных временных рядов представляет собой серьезную проблему, поскольку платформы с возрастом накапливают больше данных. Данные о пропускной способности связываются каждые 3 минуты (управляется через [bandwidth] => resolution в config.ini). За 12 месяцев с более чем 500 сайтами количество записей увеличилось до 87,6 миллионов записей; много, чтобы подвести итог, глядя на исторические записи. Хуже того, поиск записей становится дорогим с простыми алгоритмами. Например, среднее время выполнения для извлечения записи требует 27 шагов (большой O log2). Мы можем добиться большего, разделив данные на окна. Зная, что пропускная способность циклически меняется каждый месяц, данные можно разделить на более мелкие порции, 30,3-дневных 7,3 млн. Записей на сегмент, что ограничивает количество поисковых запросов на 15%. Эти куски объединены в одну виртуальную таблицу, называемую гипертаблицей, что обеспечивает прозрачный механизм хранения данных временных рядов.
Улучшенная производительность поиска — не лучшая функция, а непрерывные агрегаты («cagg»)! Cagg работает в фоновом режиме, автоматически, чтобы суммировать данные из отдельных точек данных. Возвращаясь к примеру с пропускной способностью, если мы знаем, что обновления пропускной способности каждые 5 минут, TimescaleDB пересчитывает общее количество, сохраняя в кеше, каждые 5 минут в пересмотренные итоги.
Поиски пропускной способности летают сейчас! До Caggs предыдущий запрос на превышение пропускной способности выполнялся более 20 секунд; теперь он завершается за 1/100 времени, 200 мс.
Как часть 3.1, TimescaleDB будет предоставлять отчеты в реальном времени об использовании ресурсов учетной записи через cgroups, позволяя панели быстро аннулировать доступ на сайтах, которые превышают свои 24-часовые квоты (или 30-дневные). Windows гибки, а расширения просты в использовании. Например, чтобы получить пропускную способность, используемую вчера всеми доменами, в 5-минутных разрешениях, заполняя пропуски в данных:
SELECT
site_id,
TIME_BUCKET_GAPFILL('5 minutes', ts) AS bucket,
SUM(in_bytes+out_bytes) AS sum
FROM
bandwidth_log
WHERE
ts >= NOW() - INTERVAL '1 day' AND ts < NOW()
GROUP BY site_id, bucket
ORDER BY site_id, bucket;
Пределы пропускной способности
После реализации временной шкалы принудительное использование полосы пропускания активно в 3.1. Пороги могут быть настроены в config.ini в пределах [пропускной способности], которые управляют порогами уведомлений и приостановки. При желании можно пропускать пропускную способность, используя API-метод bandwidth: amnesty для администратора устройства:
# Bandwidth is now forgiven for the domain, which ends on the bandwidth cycle day
cpcmd bandwidth:amnesty domain.com
ACME v2
apnscp теперь поддерживает протокол Let's Encrypt ACME v2. После обновления до apnscp 3.1, автоматическая миграция обновит все сертификаты v1, который начинается с заката 1 ноября. Теперь поддерживаются подстановочные сертификаты. При условии, что apnscp имеет контроль над DNS для домена (см. DNS.md), эта попытка вызова предпочтительна для расширения теоретически максимального количества защищенных SSL доменов до 50 (подстановочный знак + базовый домен, ограничение 100 имен хостов в SNI). Выпуск Let's Encrypt описан в SSL.md.
импорт cPanel / apnscp
Восстановление из резервных копий cPanel и apnscp теперь поддерживается в apnscp. Восстановление cPanel охватывает все аспекты, кроме резервного копирования PostgreSQL. Поддержка восстановления apnscp находится в предварительном просмотре и будет доработана в 3.1. Резервные копии всегда настоятельно рекомендуется. Раскрываемое решение с Bacula существует как дополнение для apnscp. См. Migrations.md для получения дополнительной информации.
Bootstrapper addin средство
Надстройки — это выпадающие пакеты, которые существенно меняют платформу. Как и в случае с Bootstrapper, любой пакет, который изменяет состояние системы, должен делать это с использованием Ansible, чтобы обеспечить долговечность платформы. Выпуск сценария оболочки с набором ошибочных команд sed (которые даже не удосуживаются установить -euo pipefail!) Начался в 1996 году. Запуск пары команд, которые автоматизируют изменения и изменяют только то, что нужно изменить, плюс дают вам Дайджест этих изменений, это сейчас.
Делегированный белый список
Rampart обеспечивает обобщенную защиту для всех аспектов платформы: MySQL, IMAP, POP3, SMTP, SSH, доступа к панели, HTTP и так далее. Любой доступный сервис защищен от атак грубой силы со стороны Rampart, что приводит к некоторым интересным сценариям с бизнесом SOHO. Делегированный белый список позволяет администраторам учетных записей объявлять до n адресов IPv4 / IPv6, защищенных от перебора.
Когда адрес находится в делегированном белом списке («Учетная запись»> «Белый список»), адрес не застрахован от блоков перебора. Пользователю, который входит в панель с заблокированным IP-адресом, все еще отображается всплывающее окно, объясняющее службу, которая активировала блок.
Подчиненные домены единого входа
Благодаря сокращению разрыва между реселлером и типичными учетными записями хостинга, apnscp теперь поддерживает вход в дочерние домены со стороны родителя. Для первого домена установите параметр оплаты услуг, invoice = IDENTIFIER. Для каждого дочернего домена, связанного с этим доменом, установите выставление счетов, parent_invoice = IDENTIFIER. Дочерние домены не могут входить в родительский домен, если они не были переданы родителем и только в рамках сеанса, из которого произошел переход родителя.
Переход домена является простым процессом в раскрывающемся списке пользовательских карт. Если ни один из известных доменов не находится на том же сервере, что и родительский, домен отображается нормально.
IMAP / POP3 / SMTP SNI
IMAP, POP3 и SMTP теперь поддерживают SNI через неявный SSL. Любой сертификат SSL, установленный для учетной записи, также доступен для использования с электронной почтой. Обратите внимание, что явный (оппортунистический SSL через «STARTTLS») не поддерживает SNI. IMAPS (993), POP3S (995) и SMTPS (465) теперь используют SNI через haproxy в качестве ограничителя SSL. Дальнейшая работа будет посвящена использованию haproxy для прекращения HTTPS-трафика, а также к значительному упрощению стека HTTP, предоставлению облегченного приемника DoS и обеспечению нулевого времени простоя при повторном запуске всех изменений SSL-сертификатов. haproxy может быть включен (или отключен) с помощью cp.bootstrapper Scope.
Поддержка IPv6
Поддержка IPv6 здесь! Все компоненты покрыты (через PR # 1).
NAT + шпилька проверяет сеть
Теперь apnscp определяет, находится ли ваша машина на частном IP-адресе, и настраивается соответствующим образом. Кроме того, закрепление также обнаруживается при выполнении проверок доступности со ссылками до выдачи SSL.
Поддержка PowerDNS
В качестве вклада от Lithium Hosting, apnscp теперь включает поддержку PowerDNS. При миграции с сервера cPanel, который уже использует PowerDNS, apnscp будет работать совместно с кластером DNS для изменения DNS.
Совместимость с WHMCS
Внесены некоторые изменения для улучшения совместимости с отслеживанием учетных записей в WHMCS, включая отдельный модуль WHMCS, предоставляемый Lithium Hosting. Запретить изменение имени пользователя через [auth] => allow_username_change. Пользователи больше не могут менять свое имя пользователя, что позволяет WHMCS работать правильно.
cpcmd yaml / json output
Теперь cpcmd поддерживает различные выходные спецификаторы, включая Yaml и JSON
Регулирование ресурсов ввода-вывода +
Чтобы установить скорость записи 2 МБ / с для всех задач PHP-FPM, используйте blkio, writebw или throttle IOPS используйте эквивалент «iops», blkio, writeiops
Черные списки веб-приложений
Запретить веб-приложения для вашего сайта через [webapps] => черный список.
IP-доступ ограничен
Доступ к панели может быть ограничен IP-адресом или диапазоном IP-адресов с помощью настроек авторизации iprestrict. Значение по умолчанию наследуется от [auth] => ip_restriction_limit в config.ini. Списки доступа могут быть настроены через Аккаунт> Настройки> Безопасность на панели. Установите 0, чтобы отключить этот сервер, кроме администратора устройства. Учетные записи, которые SSO (функция «Войти как») не соблюдают IP-ограничения.
Переименование функций
Области теперь доступны через модуль области видимости. В 3.0 Scopes находился в запутанном модуле «config». Пространство имен области действия apnscp также было сокращено до «cp».
FLARE сервис
FLARE — это маяковый сервис, созданный для рассылки нескольких обновлений в один и тот же день в ответ на угрозы нулевого дня. Все серверы 3.1 участвуют в FLARE. Сигнал FLARE вызывает upcp, который учитывает политику обновления сервера.
Это основные функции для 3.1. Теперь на 3.2 и выше! Спасибо всем за ваш отзыв. Обратная связь — это то, что делает продукт великолепным, поэтому прыгните на наш сервер Discord, если вы еще этого не сделали.
Changelog
hq.apnscp.com/apnscp-3-1-released/