Това са функции, които вече не се поддържат или скоро ще бъдат премахнати:
- Python Selector (Старата версия)
- Git за cPanel
- LVE-Stats 0.x
- OptimumCache
- TPE разширение
- Ограничения на CPU
- Интеграция с пакети – използвайте ръководството за контролен панел вместо това
- Поддръжка на Redis с HostingLimits
- Миграция към EasyApache 4 (EA4)
Python Selector (старата версия)
Забележка: Това ръководство е за старата версия на Python Selector. За новата версия, потърси актуалната документация.
Старата версия на Python Selector ти позволява да създаваш и управляваш Python приложения чрез mod_passenger, директно на сървъра.
Тази функция е налична само за CloudLinux OS 6 и по-нови версии, и само на сървъри с cPanel.
Проверка за поддържани версии на Python
Можеш да видиш кои версии на Python се поддържат със следната команда:
yum grouplist | grep alt-python
Инсталиране
Инструкциите са за EasyApache 3 и EasyApache 4. Ако използваш LiteSpeed, следвай тези стъпки:
Инсталирай нужните инструменти:
За EasyApache 3:
yum install lvemanager alt-python-virtualenv alt-mod-passenger
За EasyApache 4:
yum install lvemanager alt-python-virtualenv ea-apache24-mod-alt-passenger
След това инсталирай самите алтернативни Python пакети:
yum groupinstall alt-python
Ако ще използваш MySQL:
yum install alt-python27-devel
Увери се, че си отбелязал нужните опции в таба “Options” в LVE Manager, за да виждаш Python App в интерфейса.
За да добавяш Python модули, трябва да имаш достъп до gcc/make. Включи компилаторите от WHM → Compiler Access и изпълни:
cagefsctl –force-update
Достъп за потребители
- Влез в cPanel и избери Select Python Environment от секцията “Software”.
- Ще се появи форма, в която избираш:
- Версията на интерпретатора (Python 3.7, 3.9 и т.н.)
- Име на папката на приложението
- URL адрес (URI), през който ще се достъпва приложението
- Натисни “Create project” и ще се създаде ново Python приложение.
- След създаване, можеш да редактираш:
- Пътя към папката
- URI адреса
- WSGI входната точка (например flask/run.py:app)
- С бутон “Show control” можеш да добавяш/премахваш Python модули директно от интерфейса.
- След като направиш промени – задължително натисни Update, за да се запазят. Ако искаш да отмениш промените – натисни Reset.
Приложението първоначално е празно. Трябва ръчно да качиш твоя код във въведената папка.
Изтриване на приложение
Ако искаш да го премахнеш, натисни Remove – това ще изтрие приложението, но самата папка ще остане.
Работа с домейни
Ако имаш LVE Manager версия 0.9-10 или по-нова, можеш да обвързваш приложенията с конкретен домейн.
Пример:
/usr/bin/selectorctl –interpreter=python –version=3.7 –user=exampleuser –domain=mydomain.com –create-webapp myapp /myuri
Също така можеш да променяш URI адрес и домейн с:
/usr/bin/selectorctl –interpreter=python –user=exampleuser –domain=newdomain.com –transit-webapp myapp /newuri
Тази възможност вече е налична и през уеб интерфейса.
Бързи команди през CLI (старият selectorctl)
Този инструмент не се поддържа в новата версия на Python Selector. Използвай cloudlinux-selector.
Създаване на приложение:
selectorctl –interpreter=python –version=3.7 –create-webapp myapp /myuri
Изтриване:
selectorctl –interpreter=python –destroy-webapp myapp
Промяна на папка:
selectorctl –interpreter=python –relocate-webapp oldname newname
Промяна на URI:
selectorctl –interpreter=python –transit-webapp myapp /newuri
Промяна на версия на интерпретатора:
selectorctl –interpreter=python –set-user-current –version=3.9 myapp
Задаване на WSGI входна точка:
selectorctl –interpreter=python –setup-wsgi=flask/run.py:app myapp
Инсталиране/премахване на модули:
selectorctl –interpreter=python –enable-user-extensions=flask,django myapp
selectorctl –interpreter=python –disable-user-extensions=flask myapp
Преглед на инсталираните модули:
selectorctl –interpreter=python –list-user-extensions myapp
Преглед на всички приложения на потребител:
selectorctl –interpreter=python –user=exampleuser –user-summary
Списък с налични Python версии:
selectorctl –interpreter=python –list
Git за cPanel
Важно: Този пакет вече не се поддържа, защото може да създаде проблеми със зависимости (conflicts между пакети).
Защо не е нужен повече?
От версия 11.38 на cPanel насам, не е нужно да използваш специалния „git за cPanel“ пакет. Вместо това, можеш да инсталираш обикновен Git без никакви проблеми.
Как да инсталираш Git:
Обикновен Git:
yum install git
Ако все пак искаш да инсталираш специфичния за cPanel пакет:
yum install git-cpanel
Препоръка: Най-добре използвай стандартния git пакет, освен ако нямаш конкретна причина за нещо друго.
LVE-Stats 0.x
Важно: Тази версия вече не се поддържа. Вместо нея използвай LVE-Stats 2.
Какво представлява LVE-Stats?
lve-stats е пакет, който събира статистика за използването на LVE (Lightweight Virtual Environment) – например използване на CPU, RAM, I/O и т.н. Данните могат да се разглеждат чрез команди или визуализирани в графики.
Инсталиране
За да го инсталираш:
yum install lve-stats
Ако вече го имаш, просто го обнови:
yum update lve-stats
Това ще инсталира и сървърния компонент lvestats-server, който можеш да рестартираш с:
service lvestats restart
Къде се съхраняват данните?
Създава се SQLite база данни в:
/var/lve/lveinfo.db
В нея се пази информация за последните два месеца, под формата на:
- на всеки 5 минути – за последния час
- на всеки час – за останалото време
Файлът /var/lve/info се обновява на няколко секунди и се използва от LVE Manager.
Инструменти
lveinfo
Основният инструмент за преглед на статистики. Намира се на:
/usr/sbin/lveinfo
Някои полезни опции:
- –from= и –to= – период за отчет (по дата и час)
- –display-username – показва потребителски имена вместо LVE ID
- –order-by=cpu_max – сортиране по максимално CPU натоварване (или друг ресурс)
- –csv – изкарва резултатите в CSV формат
- –by-usage – показва LVE, които достигат до 90% от лимитите
- –by-fault – показва LVE с регистрирани грешки (например лимит на RAM)
Пример 1:
Показване на 10-те най-натоварени LVE по CPU между 10 и 15 октомври 2010:
lveinfo –from=’2010-10-10′ –to=’2010-10-15′ -o cpu_max –display-username
Пример 2:
Статистика само за потребителя web2:
lveinfo –from=’2010-10-10′ –to=’2010-10-15′ –user=web2 –display-username
Централизирано съхранение на статистика в MySQL
Отново, тази функционалност се отнася за LVE-Stats 0.x, който вече е остарял.
За да събираш данните от няколко сървъра в една обща база данни:
- Инсталирай нужния драйвър:
yum install MySQL-python
- Ако имаш MySQL 5.3+ и липсва libmysqlclient_r.so.15, инсталирай:
yum –enablerepo=cloudlinux-updates-testing install mysqlclient15
- Създай база и потребител:
create database lvestats;
grant all on lvestats.* to ‘user’@’localhost’ identified by ‘парола’;
flush privileges;
- Създай таблиците и индексите, описани в ръководството (може да ти ги дам готови като SQL файл при нужда).
- На всеки сървър редактирай файла:
/etc/sysconfig/lvestats
Примерно съдържание:
db_type = mysql
connect_string = хост:база:потребител:парола
server_id = server1
db_port = 3306
COMPACT=slave
На един сървър сложи COMPACT=master – той ще се грижи за „почистването“ на старата статистика.
След това изпълни:
service lvestats restart
За да свържеш потребителските имена с LVE ID:
/usr/share/lve-stats/save_users_to_database.py
Само първия път – след това ще се пуска автоматично с cron.
Централизирано съхранение в PostgreSQL
- Инсталирай нужния пакет:
yum install postgresql-python
- Създай база и потребител:
createdb lvestats
createuser lveuser
- Създай таблиците и индексите, описани в документацията.
- Конфигурирай /etc/sysconfig/lvestats:
db_type = postgresql
connect_string = хост:база:потребител:парола
server_id = server2
COMPACT=slave
На един сървър отново трябва да е COMPACT=master.
Ограничения:
- SERVER_NAME трябва да е максимум 10 символа
- lvestats.readonly трябва да е достъпен само за четене
- Файлът /etc/sysconfig/lvestats да е достъпен само за root (например с chmod 600)
Обобщение за настройка на няколко сървъра
Когато използваш няколко сървъра, които записват статистика в една и съща база, трябва:
- На един от тях да настроиш COMPACT=master
- На всички останали – COMPACT=slave
Така ще избегнеш дублиране и ще поддържаш базата оптимизирана.
OptimumCache
Важно:
OptimumCache вече не се поддържа.
Какво представлява OptimumCache (версия 0.2 и нагоре)
OptimumCache е специален тип кеш за файлове, създаден с мисъл за сървъри, на които се хостват много различни сайтове – например такива с WordPress, Joomla и други популярни платформи.
Когато много сайтове използват едни и същи файлове (плъгини, теми и т.н.), сървърът непрекъснато зарежда тези дублиращи се файлове в кеша. Това води до излишно натоварване на диска и използване на повече памет.
OptimumCache решава този проблем, като открива и кешира дублиращите се файлове само веднъж. Така:
- когато някой от тези файлове се поиска отново, той се зарежда директно от кеша, без да се чете отново от диска;
- това пести ресурси и ускорява работата на сайтовете;
- нуждата от памет намалява, защото няма излишни копия в кеша;
- натоварването върху диска също намалява.
Инсталиране на OptimumCache
Изисквания:
- Операционна система: CloudLinux OS 6.x или по-нова (64-битова)
- Файлова система: ext4
- Ядро: lve 1.2.55 или по-ново
Инсталиране:
С командата:
yum install optimumcache
След това трябва да укажете на OptimumCache кои папки да следи за дублиращи се файлове. Например:
# occtl –recursive –mark-dir /home
# occtl –recursive –mark-dir /home2 # ако използвате cPanel
# occtl –recursive –mark-dir /var/www # ако използвате Plesk
Важно: В този период процесорът може да се натовари повече (понякога дори двойно), докато системата индексира всички файлове.
Дисково пространство за кеша
По подразбиране, OptimumCache създава специален файл с размер 5GB, който използва за съхраняване на кеша. Този файл се намира в:
/var/share/optimumcache/optimumcache.image
и се монтира в:
/var/cache/optimumcache
Съвет:
Ако прехвърлите този файл на SSD диск, скоростта на зареждане на файловете ще е още по-висока.
Управление на кеша (ploop)
Преместване на кеш-файла (ploop):
occtl –move-ploop /път/до/нов/файл [нов_размер]
Важно: Трябва да посочите пълния път и име на новия файл, а не просто директория.
Пример:
occtl –move-ploop /var/ssh/optimumcache.image
Ако не посочите размер, ще се използва стойността от конфигурационния файл /etc/sysconfig/optimumcache, или 5GB по подразбиране.
Включване и изключване на кеша (ploop):
occtl –init-ploop # включване
occtl –disable-ploop # изключване
Ако използвате по-стара версия (0.1-21), може да се наложи да премахнете ръчно настройката за автоматично монтиране от /etc/fstab, защото новите версии го правят автоматично.
Промяна на размера на кеша:
occtl –resize-ploop [нов_размер]
Например, ако системата ви даде съобщение в логовете, че кешът трябва да е поне 8GB, с тази команда можете да го увеличите.
Изтриване на кеша (ploop):
occtl –delete-ploop
Ако възникне проблем с демонтирането му, има решения описани в раздел “Troubleshooting”.
Често задаван въпрос:
Ако съм преместил, създал, изтрил или преоразмерил кеш-файла (ploop), трябва ли да маркирам наново директориите?
Отговор: Не, не е необходимо.
Използване без ploop
Важно:
OptimumCache вече не се поддържа.
Ако използвате сървър с по-стара версия на ядрото (преди lve1.2.55), ploop няма да може да се използва поради несъвместимост. В този случай кешът се съхранява директно в папката:
/var/cache/optimumcache
Когато свободното място на диска, където се намира кешът, падне под 10%, кешът автоматично се почиства – премахват се около 20% от файловете. Това поведение може да се променя чрез настройката PURGEAHEAD в:
/etc/sysconfig/optimumcache
За да влязат промените в сила, трябва да рестартирате услугата optimumcache.
Файловете в кеша се чистят с помощта на скрипт, който се изпълнява всяка минута:
/etc/cron.d/optimumcache_cron
Този скрипт извиква:
/usr/share/optimumcache/optimumcache_purge
Маркиране на директории за кеширане
Важно:
OptimumCache вече не се поддържа.
За да кажете на OptimumCache кои директории да следи за дублиращи се файлове, използвайте:
occtl –mark-dir /път/до/директория –recursive
В повечето случаи администраторите маркират директории като:
occtl –mark-dir /home /home2 /home3 –recursive
Забележка: Индексирането на тези директории може да отнеме от няколко часа до дни и натоварва системата повече от обичайното. Статуса на тази задача може да се провери с:
at -l
Игнориране на определени файлове и папки
Когато даден файл се промени, OptimumCache автоматично спира да го следи, защото променените файлове обикновено нямат дубликати. Всички новосъздадени файлове обаче ще се проверяват.
Има случаи, когато е добре да изключите някои папки от проверка, особено такива с временни файлове (напр. папки за поща, tmp и т.н.), защото проверката за дубликати там е ненужна и тежка.
За да игнорирате определени папки, използвайте регулярен израз (regexp):
occtl –add-skip-mask REGEX
За да видите текущите „skip“ правила:
occtl –list-skip-mask
За да премахнете някое правило:
occtl –remove-skip-mask ID_или_Tag
За да приложите новите настройки:
occtl –check
Командата –check отнема време и натоварва системата, така че използвайте я внимателно, особено ако /home е над 500 GB.
Конфигурационен файл:
/etc/sysconfig/optimumcache
Примерни параметри, които можете да промените:
- OPTIMUMCACHE_MNT=/var/cache/optimumcache – място на кеша
- COUNT=0 – брой кеширани копия
- MINSIZE – минимален размер на файл за кеширане
- MAXSIZE=10485760 – максимален размер на файл (10 MB по подразбиране)
- TIMEOUT=7 – интервал между кеширания (секунди)
- NOIMMSYNC=1 – изключва честия sync, за по-добра производителност
- PURGEAHEAD=20 – колко % да се изтрият, когато няма място
- LOGLEVEL=1 – ниво на логове
- OCCTL_LVE_IO_LIMIT=5 – лимит на IO при mark/check
- PERF_LOG_ENABLED=1 – логване на производителността
Работа през команден ред (CLI)
Контролът върху OptimumCache става с инструмента occtl.
Примери:
Покажи статистика:
optimumcache stat
optimumcache stat /home
Подробна информация какво е в кеша:
optimumcache dump –resolve-filenames
Стартиране на кеш файл:
occtl –init-ploop 10G
Преместване на кеш файл:
occtl –move-ploop /нов/път/към/файл 15G
Добавяне на “пропусни” маска:
occtl –add-skip-mask “/cache/”
Спиране на кеша:
occtl –disable-ploop
Изтриване на кеш:
occtl –delete-ploop
Има още много команди, но това са най-често използваните.
cloudlinux-collectl: Бърз старт
Какво представлява?
Пакетът cloudlinux-collectl автоматично започва да събира данни за натоварването на системата във фонов режим веднага след инсталиране. Той работи независимо дали OptimumCache е инсталиран или не. Основната му цел е да позволява сравнение на производителността преди и след инсталирането на OptimumCache, за да се види дали има реална полза от него.
Инсталиране
За да го инсталирате:
yum install cloudlinux-collect –enablerepo=cloudlinux-updates-testing
Важно:
Ако ъпдейтнете OptimumCache до версия 0.2-23, cloudlinux-collectl ще се инсталира автоматично.
Измерване на времето за реакция на уебсайт
cloudlinux-collectl може да следи колко бързо отговарят определени URL адреси.
Добавяне на нов URL за наблюдение:
cloudlinux-collect –addurl <име> <http://адрес>
Пример:
cloudlinux-collect –addurl localhost http://127.0.0.1/index.php
Можете да видите още опции с:
cloudlinux-collect –help
Какво се събира?
Ако искате да видите какви статистики се събират:
cloudlinux-collect –test
Логовете се съхраняват компресирани (gzip) в:
/var/log/optimumcache/collectl
Подробности за статистиката
Когато изпълните cloudlinux-collect –test, ще видите няколко блока информация:
OPTIMUMCACHE DETAIL – показва доколко ефективно работи OptimumCache.
Пример:
inodes: 4967 общо
uncached: 31 не са кеширани
cached: 4936 кеширани (99.4%)
Тези числа показват колко файлове са кеширани и колко не.
URLSTATTRACKER DETAIL – показва времето за отговор на зададените URL адреси в милисекунди.
Ако видите отрицателна стойност (напр. -403 или -500), това не е време, а код за HTTP грешка:
- -403 = Забранен достъп
- -500 = Вътрешна грешка на сървъра или проблем със свързването
Ръчна настройка на URL адресите
След чисто инсталиране, по подразбиране се следи само http://localhost/. За да добавите нов:
cloudlinux-collect –addurl alt http://192.168.0.102/
За да видите всички наблюдавани адреси:
cloudlinux-collect –info
За да изключите някой URL от наблюдение:
cloudlinux-collect –skip <име>
Демон collectl-cloudlinux
cloudlinux-collectl използва пакета collectl. При инсталация се стартира автоматично нова услуга collectl-optimumcache.
Тя се пуска автоматично при:
- инсталиране на пакета
- рестарт на сървъра
Можете да я контролирате така:
Проверка на състоянието:
service cloudlinux-collect status
- Старт/спиране:
service cloudlinux-collect start
service cloudlinux-collect stop
Анализ на резултатите
Събраната информация се пази във файлове във формат:
/var/log/cloudlinux-collect/%име-на-сървъра%-%дата%.raw.gz
За да ги направите удобни за Excel, LibreOffice или други инструменти:
cloudlinux-collect –genplotfiles
Файловете ще се появят тук:
/var/log/cloudlinux-collect/plotfiles
Деинсталиране на OptimumCache
Внимание: OptimumCache вече не се поддържа
Спрете услугата:
service optimumcache stop
Изчистете кеша:
occtl –delete-ploop
:>/var/share/optimumcache_store
Деинсталирайте:
yum remove optimumcache
Препоръчва се рестарт на сървъра
След това опцията pfcache= автоматично ще изчезне.
Важно за по-стари версии (преди 0.2-11):
Ако ploop файлът не може да се демонтира, ще се наложи ръчно да изтриете следните файлове (може да е нужно рестартиране):
rm /var/share/optimumcache/optimumcache.image
rm /var/share/optimumcache/DiskDescriptor.xml
rm /var/share/optimumcache/DiskDescriptor.xml.lck
Ако процесът по деинсталиране отнема твърде дълго, потърсете решение в секцията „Troubleshooting“ на документацията.
Отстраняване на проблеми с OptimumCache
Забележка:
OptimumCache вече не се поддържа официално.
Инсталиране – само за Ext4 файлови системи
В момента само Ext4 файловата система се поддържа от OptimumCache. Ако сървърът ви няма монтиран дял с Ext4, инсталацията ще се прекрати с грешка като тази:
Ext4 partition is the only supported by OptimiumCache, there is no one in fstab
Също така, ако се опитате да добавите директория за кеширане, която не е на Ext4, ще получите грешка:
occtl –mark-dir /home –recursive
optimumcache: Can not mount device. rc[8192]
Yum не успява да инсталира нужните Perl модули
Ако при инсталация с yum install optimumcache получите грешки от типа:
Requires: perl(Config::Tiny)
Requires: perl(IO::Socket::SSL)
Requires: perl(YAML::Tiny)
…вероятно в конфигурационния файл /etc/yum.conf е зададено изключване на всички perl* пакети.
Решение:
yum install optimumcache –disableexcludes=all
Стар ploop не може да се демонтира (OptimumCache преди версия 0.2-23)
Проблем с демонтирането на стари ploop файлове може да доведе до неуспешно преместване или промяна на размера им. Заобиколно решение:
occtl –move-ploop –ignore-unmount-failure
Ако местите към нов файл:
occtl –move-ploop /нов/път/optimumcache.image [размер в GB] –ignore-unmount-failure
След това рестартирайте сървъра и изтрийте старите ploop файлове ръчно, ако не са премахнати автоматично.
Високо дисково натоварване (IO)
Проблемът с прекомерни операции върху диска беше решен във версия 0.2-6. Ако използвате по-стара версия, обновете така:
yum update optimumcache –enablerepo=cloudlinux-updates-testing
След това, в конфигурационния файл /etc/sysconfig/optimumcache, добавете:
NOIMMSYNC=1
LOGLEVEL=2
Рестартирайте услугата:
service optimumcache restart
Високо натоварване на процесора (CPU)
Ако забележите висока употреба на CPU, проверете дали се извършва преиндексиране на контролни суми (reindexing). Това е нормално и натоварването ще спадне, когато приключи.
Проверка с:
grep Reindexing /var/log/messages
Ако няма ред „Reindexing finished…“, процесът все още тече.
Можете да проверите и с:
occtl –report
Потърсете редове като:
PFL_REINDEX_NUM_FILES: 192810
PFL_REINDEX_THOUGHPUT_KB: 2904007
Деинсталирането отнема твърде дълго
Ако командата yum remove optimumcache изглежда „забива“, това е защото премахва маркировки от файловете един по един – което може да отнеме много време.
Можете да спрете този процес така:
occtl –cancel-pending-jobs
Това ще прекрати текущата операция, а деинсталацията ще приключи почти веднага.
Грешка: „Failed to attach peer: Invalid argument“
Тази грешка е по-рядка. За да я поправите, опитайте да обновите статуса на кешираните точки:
occtl –remount-cached-points
Trusted Path Execution (TPE) – защита чрез ограничаване на изпълнимите файлове
Какво е TPE?
TPE е функция за сигурност, която ограничава изпълнението на програми от потребители, които не са администратори (non-root).
С нея можете да направите така, че обикновени потребители да не могат да стартират изпълними файлове, освен ако те не се намират в специално позволени директории.
Това повишава сигурността на сървъра, защото не позволява стартиране на произволен код от потребители без пълни права.
Как да я включим?
Поддръжката за TPE е вградена в ядрото на системи с grsecurity. Не е нужно да инсталирате нищо допълнително.
Можете да я настроите, като редактирате файла /etc/sysctl.conf и добавите в края:
# Настройки за GRsecurity и TPE
kernel.grsecurity.tpe = 1
kernel.grsecurity.tpe_restrict_all = 1
kernel.grsecurity.grsec_lock = 1
След това активирайте промените с:
sysctl -p
Важна забележка
След като зададете grsec_lock = 1, няма да можете да променяте TPE настройките без рестарт на системата. Това заключва настройките, за да се избегне нежелано или злонамерено тяхно променяне.
Файлове, чрез които TPE се конфигурира директно (без sysctl.conf):
- /proc/sys/kernel/grsecurity/grsec_lock – заключва настройките
- /proc/sys/kernel/grsecurity/tpe – включва/изключва TPE
- /proc/sys/kernel/grsecurity/tpe_gid – указва GID (група), която има право да изпълнява файлове извън позволените директории
- /proc/sys/kernel/grsecurity/tpe_restrict_all – при 1, ограничава всички потребители (включително root, освен ако не е в указаната група)
Произход:
TPE е част от grsecurity – разширение за ядро, което предлага допълнителни мерки за сигурност в Linux.
Ограничения на CPU (процесорно време)
Важно:
Тази система за CPU ограничения вече не се използва. Вместо това се използва параметърът SPEED.
Как работеше преди (преди версия lve-utils 1.4)
Ограниченията на процесора се определяха чрез две стойности:
- CPU – процент от общото CPU на сървъра, който е достъпен за потребителя (в LVE).
- NCPU – брой ядра, които са достъпни за потребителя.
Истинското ограничение се определяше от по-малката стойност между тези две.
Примери:
| Ядра на сървъра | CPU (%) | NCPU | Реално ограничение |
| 1 ядро | 25% | 1 | 25% от 1 ядро |
| 2 ядра | 25% | 1 | 50% от 1 ядро |
| 4 ядра | 25% | 1 | 100% от 1 ядро |
| 4 ядра | 50% | 2 | 2 ядра |
| 8 ядра | 50% | 3 | 3 ядра |
Какво се случва, когато се достигне лимитът?
Ако потребителят достигне зададения лимит за CPU, процесите му се забавят нарочно, за да не го превишат.
Например:
Ако лимитът е 10%, и процесите искат да използват повече от това, те ще бъдат „заспивани“ периодично, така че реално използваното време да не надвиши лимита.
Забавянето не е на интервали от 1 секунда – то се случва много по-често, така че натоварването никога не надвишава зададения лимит.
Интеграция с пакети в CloudLinux OS
Важно:
Тази система за интеграция вече не се поддържа активно. Вместо нея се препоръчва използване на интеграционното ръководство за контролни панели.
Какво представлява това?
От версия lve-utils 1.4+, CloudLinux OS автоматично разпознава най-популярните хостинг контролни панели (като cPanel) и ви позволява да задавате различни лимити на ресурси според “пакета” на всеки клиент.
Това означава, че не е нужно:
- да задавате един и същ лимит за всички потребители, или
- да въвеждате лимити ръчно за всеки поотделно.
А ако използвате собствен панел?
Ако имате собствено направен контролен панел с ваша система от пакети, пак можете да използвате CloudLinux OS за управление на лимитите.
Нужно е само:
- Да напишете скрипт, който свързва потребители с пакети.
- Да настроите CloudLinux да използва този скрипт чрез lvectl.
Как трябва да работи скриптът?
Скриптът може да бъде на който и да е език (bash, python и т.н.), стига да е изпълним (chmod +x). Той трябва да поддържа следните опции:
–list-all
Извежда списък с [userID packageName], напр.:
100 package1
101 package1
102 package2
–userid=ID
Връща името на пакета за даден потребител, напр.:
package1
–package=”име”
Връща списък от user ID-та, които принадлежат на този пакет:
100
101
–list-packages
Извежда списък с всички имена на пакети:
package1
package2
package3
Как да кажете на CloudLinux да използва вашия скрипт?
Редактирайте файла:
/etc/sysconfig/cloudlinux
- Добавете или редактирайте тази настройка:
CUSTOM_GETPACKAGE_SCRIPT=/пълен/път/до/вашия/скрипт
Примерен скрипт можете да видите в официалната документация: Примерен скрипт от CloudLinux
Как да проверите дали CloudLinux OS е активен?
Проверка за ядрото:
bash
КопиранеРедактиране
uname -r | grep lve
- Ако видите нещо с lve в името, значи ядрото е CloudLinux (напр. 2.6.32-…lve…).
- Проверка за CageFS:
Дали е активен глобално:
/usr/sbin/cagefsctl –cagefs-status
Дали е активен за конкретен потребител:
/usr/sbin/cagefsctl –user-status потребител
Дали сте вътре в CageFS: Проверете дали съществува файлът:
/var/.cagefs/.cagefs.token
Показване на лимити за CPU, памет и IO
Повечето контролни панели показват информацията от CloudLinux директно на клиентите. За целта lve-stats създава файл с информация, който контролният панел може да прочете лесно:
/var/lve/info
Този файл се обновява на всеки 5 минути и съдържа:
- първия ред – дефолтни лимити за всички
- останалите редове – лимити и използване на активните клиенти
Ако клиент липсва в списъка – той не е активен (не е пускал скриптове наскоро), и има стандартните лимити.
Какво съдържа всеки ред?
Всеки ред има стойности, разделени със запетаи:
| № | Какво означава |
| 0 | User ID |
| 1 | Използвани входни процеси |
| 2 | Лимит за входни процеси |
| 3 | CPU използване |
| 4 | CPU лимит |
| 5 | Използвана виртуална памет |
| 6 | Лимит за виртуална памет |
| 7 | Грешки при виртуална памет |
| 8 | Грешки при входни процеси |
| 9 | Лимит за физическа памет |
| 10 | Използвана физическа памет |
| 11 | Грешки при физическа памет |
| 12 | Лимит на брой процеси |
| 13 | Използвани процеси |
| 14 | Грешки при процеси |
| 15 | (запазено) |
| 16 | IO използване (KB/s) |
| 17 | IO лимит (KB/s) |
Важно:
При по-старите версии на LVE (напр. версия 4) се показват само първите 9 полета. При версия 6 – всички 18.
Redis поддръжка в mod_hostinglimits
Внимание:
От версия 1.0-30 на mod_hostinglimits, Redis вече не се поддържа!
Тази информация се отнася само за по-стари версии на модула.
Какво представлява Redis поддръжката?
С Redis поддръжка, модулът mod_hostinglimits може да използва Redis база данни, за да определи LVE ID на потребителя според домейна, който е заявен в HTTP заявката.
Пример:
Ако имате Redis база с данни като тази:
КопиранеРедактиране
xyz.com 10001
bla.com 10002
…когато някой отвори xyz.com, модулът ще открие, че този домейн трябва да се изпълнява под LVE с ID 10001.
Как да активирате Redis поддръжка? (Само за по-стари версии)
Трябва да компилирате mod_hostinglimits ръчно от сорс код с включена Redis поддръжка:
Стъпки:
- Изтеглете кода:
wget https://repo.cloudlinux.com/cloudlinux/sources/da/mod_hostinglimits.tar.gz
- Инсталирайте нужните инструменти:
yum install cmake - Разархивирайте и компилирайте:
tar -zxvf mod_hostinglimits*.tar.gz
cd mod_hostinglimits*
cmake -DREDIS:BOOL=TRUE .
make
make install
- Конфигуриране на Redis режим
След като модулът е компилиран с Redis поддръжка, трябва да го включите чрез настройка:
apache
КопиранеРедактиране
LVEParseMode REDIS
Допълнителни настройки
LVERedisSocket – използване на Unix сокет
- Какво прави: Задава пътя до Redis сокета.
Пример:
LVERedisSocket /var/run/redis.sock
- По подразбиране: /tmp/redis.sock
LVERedisAddr – използване на IP/порт
- Какво прави: Позволява връзка към Redis по IP адрес и порт вместо чрез сокет.
Пример:
LVERedisAddr 127.0.0.1 6993
LVERedisTimeout – интервал за повторен опит при грешка
- Какво прави: Определя колко секунди да изчака, преди да опита отново връзка с Redis при неуспешен опит.
Пример:
LVERedisTimeout 120
- По подразбиране: 60 секунди
Миграция към EasyApache 4 (EA4) в CloudLinux OS
Основни съвети и ограничения
- Използвайте cPanel версия 11.55.999.66 или по-нова.
- Някои по-стари версии на PHP, като ea-php51 и ea-php52, не поддържат PHP-FPM.
Вместо това използвайте mod_lsapi – следвайте инструкциите за инсталация и конфигурация от сайта на CloudLinux.
Сценарии според вида на системата
CentOS със вече инсталиран EasyApache 4
Ако сървърът вече има EasyApache 4, а вие искате да преминете към CloudLinux OS:
Преобразувайте CentOS в CloudLinux OS
(Вижте официалните инструкции за конвертиране)
Рестартирайте Apache:
service httpd restart
CentOS без инсталиран EasyApache 4
Ако сървърът няма EA4, а искате да преминете към CloudLinux и EA4:
Преобразувайте CentOS към CloudLinux OS.
След това изпълнете:
cd ~
wget https://repo.cloudlinux.com/cloudlinux/sources/cloudlinux_ea3_to_ea4
sh cloudlinux_ea3_to_ea4 –convert
CloudLinux OS без EasyApache 4
Ако вече сте на CloudLinux, но още нямате EA4:
Инсталирайте cPanel (ако не е инсталиран).
Изпълнете:
cd ~
wget https://repo.cloudlinux.com/cloudlinux/sources/cloudlinux_ea3_to_ea4
sh cloudlinux_ea3_to_ea4 –convert
Какво представлява скриптът cloudlinux_ea3_to_ea4?
Този скрипт автоматизира процеса по миграция от EA3 към EA4, като предлага и допълнителни опции за инсталиране на модули.
Синтаксис:
cloudlinux_ea3_to_ea4 [допълнителни опции] ДЕЙСТВИЕ
Основни действия (задължителни):
| Флаг | Действие |
| –convert | Преход от EA3 към EA4 |
| –revert | Връщане обратно към EA3 |
Допълнителни опции (по избор):
| Флаг | Какво прави |
| –mod_lsapi | Инсталира mod_lsapi |
| –altphp | Инсталира или обновява alt-php |
| –mod_passenger | Инсталира alt-mod-passenger |
Примери:
Преход към EA4 + mod_lsapi + alt-php:
sh cloudlinux_ea3_to_ea4 –convert –mod_lsapi –altphp
- Преход към EA4 + mod_lsapi + alt-php + mod_passenger:
sh cloudlinux_ea3_to_ea4 –convert –mod_lsapi –altphp –mod_passenger - Връщане обратно към EA3 с mod_lsapi:
sh cloudlinux_ea3_to_ea4 –revert –mod_lsapi