Введение
Настройка и управление Open Litespeed server производится с помощью двух панелей управления (webadmin console – далее webadmin и cyberpanel), или текстовыми конфигурационными файлами. Webadmin и cyberpanel не дублируют, а дополняют друг друга.
Webadmin предназначен для настройки и управления сервером, виртуальными хостами, listeners и т.п. Установка различных версий PHP, ролей сервера, внешних приложений и модулей (cache, modpagespeed…), доступ к логам, онлайн статистике, настройке AppServer для Ruby, Python, Node.js и многое другое доступно в интерфейсе webadmin для OLS.
Cyberpanel предназначен для создания сайтов, установки CMS, настройки баз данных, PHP, почты, firewall, других функций. Это своего рода “фронт” для сервера. Базовые настройки Open Litespeed для хостов (сайтов) доступны в интерфейсе cyberpanel.
Настройка сервера, хостов текстовыми конфигурационными файлами проста для опытных пользователей, но требует внимательности, аккуратности, знаний. Множество “ручных” операций, например получение и установка ssl сертификатов затрудняет настройку для новичков.
Доступ к панели управления сервером webadmin
Webadmin для OLS доступен в браузере по адресу: https://IP-сервера:7080. Вместо IP-сервера подставьте реальный ip. При отсутствии доступа к webadmin необходимо в firewall разрешить доступ на порт 7080 из настроек cyberpanel или в консоли сервера (доступ по ssh или vnc).
В cyberpanel настройка firewall находится по адресу: https://IP-сервера:8090/firewall/. Добавляем правило для порта 7080:

Из терминала еще проще:
firewall-cmd --zone=public --permanent --add-port 7080/tcp
firewall-cmd --reload

Введите имя (по умолчанию – admin) и пароль. Забытый пароль можно посмотреть в файле /etc/cyberpanel/webadmin_passwd. Сбросить, изменить имя и пароль webadmin можно командой:
/usr/local/lsws/admin/misc/admpass.sh
Интерфейс Open Litespeed webadmin
Интерфейс webadmin прост и понятен. Условно разделен на три зоны: верхнее вспомогательное меню (двухуровневое), левое меню (основное), правая (функциональная) зона для редактирования параметров Open Litespeed и отображения служебной информации. Некоторые элементы управления в меню дублированы для удобства.

Верхнее меню имеет два уровня. Первый уровень – меню справа: “выбор языка”, “развернуть на весь экран”, “выход из панели”, “свернуть левое(основное) меню”.

Второй уровень доступен при нажатии на имя сервера. Четыре кнопки: перезагрузка сервера OLS (не виртуального), статистика сервера реального времени, просмотр логов, режим отладки (используйте при необходимости, но непродолжительное время – подробные логи сервера могут исчерпать место на диске за несколько минут).

Левое меню служит в первую очередь для настройки Open Litespeed, listeners и виртуальных хостов. Некоторые пункты имеют субменю. Основные пункты меню:
- Dashboard
- Server Configuration
- Listeners
- Virtual Hosts
- VHost Templates
- Tools
- WebAdmin Settings
- Help
Dashboard служит для просмотра информации о сервере, listeners, виртуальных хостах, быстрого доступа к статистике и логам, остановки и запуска Virtual Hosts. Интерфейс Dashboard на скриншоте выше.
Редактирование параметров
Для редактирования настроек нажмите кнопку справа.
Редактирование параметров сервера в webadmin
Настройка конфигурации сервера Open Litespeed (Server Configuration) в WebAdmin
Настройку параметров и тюнинг сервера Open Litespeed в WebAdmin можно выполнить за несколько минут при наличии некоторой суммы знаний и четкого представления того, что вы хотите получить в результате. Настройки зависят от роли сервера, количества сайтов, настроек операционной системы и ряда других параметров. Рассмотрим настройки для Web сервера. Все настройки выполняются редактированием нужных полей (значений) во вкладках:
- Server Configuration > General
- Server Configuration > Log
- Server Configuration > Tuning
- Server Configuration > Security
- Server Configuration > External App
- Server Configuration > Script Handler
- Server Configuration > App Server
- Server Configuration > Modules
Server Configuration > General

Структура вкладки Server Configuration > General:
- Server Process
- General Settings
- Index Files
- Expires Settings
- Rewrite Control
- File Upload
- MaxMind GeoIP DB
- IP2Location DB
Раздел Server Process
Раздел Server Process служит для настройки низкоуровневых параметров сервера. В режиме редактирования доступно изменение любых настроек сервера.

Настройки раздела Server Process зависят от оборудования, настроек операционной системы, ролей сервера.
- Server Name – уникальное имя сервера. Если оставить пустым, то по умолчанию будет использовано имя хоста.
- Number of Workers – определяет количество httpd процессов. Возможные значения от 1 до 16. Если система имеет меньше 4 ядер (потоков) то 1 лучший выбор.
Не увеличивайте без необходимости количество httpd процессов. Вместо прироста производительности возможны проблемы с потреблением памяти и стабильностью. Установите максимальное значение этого значения не более, чем количество ядер / потоков процессора, которые поддерживает ваш сервер.
Вы должны оставить некоторые потоки процессора доступными для других процессов сервера. Установите этот параметр в соответствии с вашими потребностями (или пока оставьте по умолчанию). Простое правило расчета количества процессов:
меньше 4 cpu threads = 1/2
6-12 cpu threads = 1/3
13-16 cpu threads = 1/4
17-24 cpu threads = 1/6
25-32+ cpu threads = 1/8
- Priority – системный приоритет сервера. От -20 до 20. Чем меньше значение, тем выше приоритет. Более высокий приоритет обеспечивает большую отзывчивость вебсервера при ограниченных ресурсах. Не устанавливайте приоритет выше, чем у процессов базы данных.
- CPU Affinity – назначение процесса сервера одному или несколькими процессорам (ядрам) доступным VPS. Для процесса полезно всегда использовать один и тот же процессор, тогда процесс может использовать данные оставшиеся в кэше процессора. Если процесс перемещается на другой процессор, то кэш процессора не используется? возникают ненужные накладные расходы. Минимальное значение – 0 отключит функцию. Максимальное значение – это количество ядер, которое имеет сервер.
Как правило, 1 – лучший параметр, потому что он создает самое строгое назначение ЦП и, таким образом, максимально использует кэш ЦП.
- Cloud Linux– специфичная настройка для данной ОС. Доя всех, кроме владельцев Cloud Linux – disabled. Указывает, следует ли включать облегченную виртуальную среду CloudLinux (LVE) если она существует. Обеспечивает лучшее управление ресурсами LiteSpeed.
- Memory I/O Buffer – максимальный размер буфера, который используется для хранения запроса клиента и динамически генерируемого ответа. Когда предел будет достигнут, сервер начнет создавать временные файлы подкачки в каталоге подкачки на диске. Установите размер буфера достаточно большим, чтобы вместить все одновременные запросы / ответы, чтобы избежать свопа данных из памяти на диск. Если в каталоге подкачки /tmp /lshttpd/swap/ часто происходят операции ввода-вывода, то размер буфера слишком мал, LiteSpeed переключается на диск.
Оптимальное значение для начала 120 – 180M (при доступной памяти более 2 ГБ).
- Swapping Directory – каталог для файлов подкачки. Если сервер запускается в режиме chroot, этот каталог относится к новому корневому каталогу, в противном случае он относится к реальному корневому каталогу. Сервер использует свою собственную виртуальную память, чтобы уменьшить использование системной памяти. Виртуальная память и обмен с дисками используется для хранения больших запросов и динамически генерируемых ответов. Каталог подкачки должен быть помещен на диск достаточного размера. Значение по умолчанию: /tmp/lshttpd/swap. Поместите каталог подкачки на отдельный диск или увеличьте максимальный размер буфера ввода-вывода(Memory I/O Buffer) , чтобы исключить подкачку.
- Auto Fix 503 Error – сервер пытается исправить ошибку “служба 503 недоступна” путем перезапуска сервера. Ошибка “503” обычно вызвана неисправностью внешних приложений, и перезапуск веб-сервера часто может временно исправить эту ошибку. Если настройка включена, сервер будет автоматически перезапускаться всякий раз, когда в течение 30 секунд будет обнаружено более 30 ошибок “503”. Эта функция включена по умолчанию.
- Enable HTTP/2 Over Cleartext TCP – включает HTTP/2 через незашифрованные TCP-соединения. Допустимо при необходимости использовать HTTP/2 без HTTPS. Создайте listeners привязав свободный порт. Вы не можете использовать 443 порт для HTTP/2 без https.
- Graceful Restart Timeout (secs) – интеллектуальный перезапуск сервера через заданный промежуток времени. Запуск нового экземпляра сервера, старый экземпляр будет обрабатывать уже существующие запросы. Этот тайм-аут определяет, как долго предыдущий экземпляр должен работать до завершения. Значение по умолчанию – 300 секунд.
- Statistics Output Directory – каталог файлов статистики состояния сервера в реальном времени, по умолчанию – /tmp/lshttpd/
Раздел General Settings

- MIME Settings – указывает файл, содержащий параметры MIME для этого сервера. Откройте файл через ssh или sftp, чтобы просмотреть / отредактировать записи MIME. При передаче файла сервер указывает MIME-тип документа. Это позволяет Web-браузеру правильно обработать получаемый файл. MIME-тип указывается в формате: <Категория>/<Тип файла>.
- Disable Initial Log Rotation – включение / отключение ротации файлов журнала ошибок сервера при запуске. Начальная ротация журнала включена по умолчанию при использовании значения “не установлено” или “YES”.
- Server Signature – отображение имени сервера и номера версии в значении “сервер” заголовка ответа. Есть три варианта: установлено значение скрыть версию, отображается только LiteSpeed. Если задано значение показать версию, отображается LiteSpeed и номер версии. Если задано значение скрыть полный заголовок, то весь заголовок сервера не будет отображаться в заголовке ответа. Установите значение скрыть версию, если вы не хотите раскрывать номер версии сервера.
- Enable GeoLocation Lookup – включение / отключение IP-геолокации. Устанавливается на уровне сервера, виртуального хоста или контекста. IP-геолокация по умолчанию отключена при использовании значения “не установлено”.
- Use Client IP in Header – определяет использование допустимых IP-адресов, указанных в заголовке HTTP-запроса “X-Forwarded-For”, для всех функций, связанных с IP-адресами, включая регулирование пропускной способности, контроль доступа и IP-геолокацию. Эта функция полезна, если ваш веб-сервер находится за балансировщиком нагрузки или прокси-сервером.
- Administrator Email – адрес(а) электронной почты администратора сервера. Администраторы будут уведомлены по электронной почте о важных событиях (например, когда служба LiteSpeed автоматически перезапускается из-за сбоя или когда истекает срок действия лицензии).Синтаксис: список адресов электронной почты, разделенных запятыми. Функция оповещения по электронной почте будет работать только в том случае, если на сервере есть активный MX-сервер, такой как postfix, exim или sendmail. Кроме того, в DNS должна быть правильно сформирована PTR запись.
Раздел Index Files

- Index Files – имена индексных файлов сопоставления URL-адреса с каталогом. Настраивается на уровне сервера, виртуального хоста и контекста. Синтаксис: список индексных имен файлов, разделенных запятыми. Устанавливайте только те индексные файлы, которые вам нужны.
- Auto Index – определяет следует ли создавать индекс каталога на лету, если индексные файлы, перечисленные в разделе “индексные файлы”, недоступны в каталоге. Этот параметр настраивается на уровне виртуального хоста и контекста и наследуется по дереву каталогов до тех пор, пока не будет явно переопределен. Вы можете настроить созданную страницу индекса. Рекомендуется отключать автоматический индекс везде, где это возможно, чтобы предотвратить раскрытие конфиденциальных данных.
- Auto Index URI – указывает URI, который будет использоваться для создания индексной страницы, если индексные файлы, перечисленные в разделе “индексные файлы”, недоступны в каталоге. Веб-сервер LiteSpeed использует внешний скрипт для создания индексной страницы, обеспечивая максимальную гибкость настройки. Сценарий по умолчанию создает индексную страницу с тем же внешним видом, что и у Apache. Каталог, подлежащий индексации, передается скрипту через переменную окружения “LS_AI_PATH”.
Раздел Expires Settings

- Enable Expires – разрешить создавать заголовок Expires для статических файлов. Если этот параметр включен, заголовок Expires будет сгенерирован на основе “ExpiresDefault” и “Expires By Type”. Устанавливается на уровне сервера, виртуального хоста и контекста. Настройки более низкого уровня будут переопределять настройки более высокого уровня, то есть настройки контекста будут переопределять настройки виртуального хоста, а настройки виртуального хоста будут переопределять настройки сервера. Установите “YES” для корректной работы кэша браузера и сервера.
- Expires Default – задает параметры по умолчанию для генерации заголовка Expires. Этот параметр вступает в силу, когда для параметра “Enable Expires” установлено значение “Yes”. Он может быть переопределен “ExpiresByType”. Не устанавливайте это значение по умолчанию на уровне сервера или виртуального хоста без необходимости, так как оно будет генерировать заголовки Expires для всех страниц. В большинстве случаев это должно быть установлено на уровне контекста для определенных каталогов, которые не часто меняются. Если настройка по умолчанию отсутствует, то заголовок Expires не будет сгенерирован для типов, не указанных в разделе “ExpiresByType”.
- Expires By Type – заданные параметры заголовка Expires для отдельных типов MIME. Установите по умолчанию: image/=A604800,text/css=A604800,application/x-javascript=A604800,application/javascript=A604800,font/=A604800,application/x-font-ttf=A604800.
Раздел Rewrite Control

- Auto Load from .htaccess – автоматическая загрузка правил перезаписи(rewrite rules) , содержащиеся в файле .htaccess каталога, при первом обращении к этому каталогу, если HttpContext для этого каталога с помощью директивы rewritefile еще не установлен / не определен. После первоначальной инициализации или редаетирования необходимо выполнить перезапуск сервера, чтобы изменения в .htaccess вступили в силу.
Раздел File Upload
Обеспечивает дополнительную безопасность при загрузке файлов в локальный каталог сервера с помощью анализатора тела запроса, где они могут быть легко проверены на наличие злого умысла сторонними модулями. Анализатор тела запроса используется, когда включена функция “передать данные загрузки по пути к файлу” или модуль вызывает set_parse_req_body LSIAPI на уровне LSI_HKPT_HTTP_BEGIN.

- Temporary File Path – временный каталог, в котором файлы, загружаемые на сервер, будут храниться во время работы анализатора тела запроса. Значение по умолчанию – /tmp/lshttpd/
- Temporary File Permission – определяет права доступа к файлам хранящихся во временном каталоге. Настройки на уровне сервера является глобальной, можно переопределить на уровне виртуального хоста. Синтаксис: 3-значный октетный номер. Значение по умолчанию – 666.
- Pass Upload Data by File Path – укажите, следует ли передавать данные загружаемого файла. Если этот параметр включен, то путь к файлу вместе с некоторой другой информацией отправляется в бэкенд-обработчик вместо самого файла при загрузке. Это экономит ресурсы процессора и время передачи файлов, но требует усилий для реализации бэкэнда. Если этот параметр отключен, содержимое файла будет передано в бэкенд-обработчик, а тело запроса все равно будет записано в файлы.
Раздел MaxMind GeoIP DB
Базы данных геолокации MaxMind. MaxMind имеет следующий тип DBs: страна, регион, город, организация, провайдер, сеть(скорость). Если настроено несколько баз данных типов “страна”, “регион” и “город”, то только последняя конфигурация будет задействована. Вы можете не использовать геолокацию и не настраивать эти параметры.

- DB File Path – путь к базе данных MaxMind GeoIP. Пример: /usr/local/share/GeoIP/GeoLite2-Country.mmdb
- DB Name – имя базы данных MaxMind GeoIP. Этот параметр является обязательным. При обновлении с GeoIP на GeoIP2 использование значений “COUNTRY_DB”, “CITY_DB” или “ASN_DB” для этого параметра автоматически заполнит переменную PHP $_SERVER некоторыми записями, совместимыми с GeoIP. CITY_DB: ‘GEOIP_COUNTRY_CODE’, ‘GEOIP_COUNTRY_NAME’, ‘GEOIP_CONTINENT_CODE’, ‘GEOIP_COUNTRY_CONTINENT’, ‘GEOIP_DMA_CODE’, ‘GEOIP_METRO_CODE’, ‘GEOIP_LATITUDE’, ‘GEOIP_LONGITUDE’, ‘GEOIP_POSTAL_CODE’ и ‘GEOIP_CITY’. COUNTRY_DB: ‘GEOIP_COUNTRY_CODE’, ‘GEOIP_COUNTRY_NAME’, ‘GEOIP_CONTINENT_CODE’ и ‘GEOIP_COUNTRY_CONTINENT’. ASN_DB: ‘GEOIP_ORGANIZATION’ и ‘GEOIP_ISP’. Пример: COUNTRY_DB
- Environment Variables – сопоставление результатов поиска в базе данных переменным среды. Синтаксис: Variable_Name mapped_DB_data. По одной записи на строку. Путь к данным может использовать ключи или индексы массива разделенные символом /. Пример: COUNTRY_CODE COUNTRY_DB/country/iso_code или REGION_CODE CITY_DB/subdivisions/0/iso_code.
- Notes – ваши заметки в произвольной форме
Раздел IP2Location DB

- IP2Location DB File Path – расположение файла базы данных. Синтаксис: имя файла, которое может быть абсолютным путем или относительным путем к $SERVER_ROOT.
- DB Cache Type – используемый метод кэширования. Значение по умолчанию – память.
Server Configuration > Log
Настройка логов сервера. Структура вкладки Server Configuration > Log:
Раздел Server Log

Путь к лог файлу может быть абсолютным путем или относительным к $SERVER_ROOT. Новый файл будет создан, если текущий файл превысит заданный размер. Размер файла выражается в байтах и может быть в нескольких входных форматах: 10240, 10K или 1M. Журнал Stderr находится в том же каталоге, что и журнал сервера. Если этот параметр включен, то все выходные данные внешнего приложения в stderr будут записываться в этот файл.
- File Name – указывает путь к лог файлу. Синтаксис: имя файла, которое может быть абсолютным путем или относительным путем к $SERVER_ROOT. Для лучшей производительности разместите файл журнала на отдельном диске.
- Log Level – указывает уровень детализации лога. Доступные уровни (от высокого до низкого): ошибка, предупреждение, уведомление, информация и отладка. Будут регистрироваться только сообщения с уровнем выше или равным текущему значению. Детализация не оказывает никакого влияния на производительность, если только “Debug Level” не установлен на уровень, отличный от NONE.
- Debug Level – задает уровень детализации журнала отладки. “Log Level” должен быть установлен в “DEBUG”, чтобы использовать эту функцию. Ведение журнала отладки отключается, если для параметра “Debug Level” задано значение “нет”, даже если для параметра” Log Level “задано значение “отладка”. Важно! Всегда устанавливайте это значение равным NONE, если вам не требуется подробное ведение журнала отладки. Активное ведение журнала отладки приведет к серьезному снижению производительности сервера и исчерпанию дискового пространства за очень короткое время. Ведение журнала отладки включает подробную информацию для каждого запроса и ответа.
- Rolling Size (bytes) – создание нового активного лога, при условии что размер лог файла превысил заданный лимит. Текущий файл журнала будет переименован в log_name.mm_dd_yyyy(.sequence) в том же каталоге. Фактический размер лог файла иногда будет немного больше заданного размера. Установите значение 0, чтобы отключить эту функцию.
- Keep Days – устанавливает, сколько дней лог файл будет храниться на диске. Будут удалены только файлы журнала старше указанного количества дней. Текущий лог файл не будет удален независимо от того, за сколько дней он содержит данные. Если вы не хотите автоматически удалять устаревшие и очень старые файлы журналов, установите это значение равным 0.
- Enable stderr Log – включает запись выходных данных stderr от процессов, запущенных сервером. Если этот параметр включен, сообщения stderr будут регистрироваться в том же каталоге, что и журнал сервера с фиксированным именем “stderr.log”. Если он отключен, то все выходные данные stderr игнорируются. Включите stderr Log, если вам нужно отладить внешние приложения: например, PHP, Ruby, Java, Python, Perl.
Раздел Access Log

- File Name – имя файла журнала доступа. Указывайте абсолютный путем или относительный путь от $SERVER_ROOT. Для лучшей производительности поместите файл журнала доступа на отдельный диск (по возможности).
- Piped Logger – определяет внешнее приложение, которое будет получать данные журнала доступа, отправленные LiteSpeed через канал в потоке STDIN (дескриптор файла равен 0). Если это поле указано, то журнал доступа будет отправлен только в обработчик, а не в файл журнала доступа, указанный в предыдущей записи. Обработчик должен быть определен в вкладке “External Apps” в первую очередь. Ведение журнала доступа на уровне сервера может использовать только внешнее приложение, определенное на уровне сервера. Ведение журнала доступа на уровне виртуального хоста может использовать только приложение обработчика, определенное на уровне виртуального хоста.
- Log Format – задает формат журнала для журнала доступа. Когда формат журнала установлен, он будет переопределять параметр “Log Headers”.
- Log Headers – указывает, следует ли регистрировать заголовки HTTP-запросов: Referer, User Agent и Host. Отключите эту функцию, если вам не нужны эти заголовки в журнале доступа.
- Rolling Size (bytes) – когда размер лога превысит указанный лимит, активный файл журнала будет переименован в log_name.mm_dd_yyyy(.sequence) в том же каталоге и будет создан новый активный файл журнала. Установите значение 0, чтобы отключить эту функцию.
- Keep Days – указывает, сколько дней файл журнала доступа будет храниться на диске. Будут удалены только файлы журнала старше указанного количества дней. Текущий файл журнала не будет затронут. Если вы не хотите автоматически удалять устаревшие и очень старые файлы журналов, установите это значение равным 0.
- Compress Archive – сжатие журналов для экономии дискового пространства. Файлы журналов хорошо поддаются компрессии.
Server Configuration > Tuning

Структура вкладки Server Configuration > Tuning:
- OS Optimization
- Connection
- Request/Response
- Static File Delivery Optimization
- GZIP/Brotli Compression
- SSL Global Settings
- QUIC
Раздел OS Optimization

- Default SHM Directory – устанавливает каталог общей(shared) памяти по умолчанию. Если каталог не существует, он будет создан. Все данные SHM будут храниться в этом каталоге.
Раздел Connection

- Max Connections – максимальное число одновременных подключений, которое может принимать сервер. Это включает в себя как простые TCP-соединения, так и SSL-соединения. Как только максимальное ограничение одновременных подключений будет достигнуто, сервер закроет сохраняемые соединения, когда они завершат активные запросы. Сервер попытается автоматически настроить ограничения соединений, но вам может потребоваться увеличить этот параметр вручную.
- Max SSL Connections – максимальное количество одновременных SSL соединений, которые будет принимать сервер. Поскольку общее количество одновременных SSL-и не-SSL-соединений не может превышать предел, указанный “Max Connections”, фактическое количество разрешенных одновременных SSL-соединений должно быть ниже или равно Max Connections.
- Connection Timeout (secs) – максимальное время простоя соединения, допустимое при обработке одного запроса. Соединение будет закрыто, если оно простаивало, то есть не было активности ввода-вывода, в течение этого периода времени. Установите этот параметр как можно ниже, чтобы помочь восстановить “мертвые” соединения во время DoS-атаки.
При активной DoS атаке установите это значение в интервале от 10 до 30. Это минимизирует эффективность атаки, работоспособность сервера не нарушится.
- Max Keep-Alive Requests – максимальное количество запросов, которые могут быть обслужены через постоянное соединение(keep-alive). Соединение будет закрыто, как только этот предел будет достигнут. Вы также можете установить это ограничение для каждого виртуального хоста.
Установите это значение 2000 или выше. Значение “1” или “0” отключит функцию keep-alive. Это важная настройка сильно влияющая на производительность сервера.
- Keep-Alive Timeout (secs) – максимальное время простоя между запросами соединения keep-alive. Если в течение этого периода времени не будет получено ни одного нового запроса, соединение будет закрыто. Этот параметр применяется только к соединениям HTTP/1.1. Соединения HTTP/2/3 имеют длительные таймауты поддержания активности по умолчанию и не подвержены влиянию этого параметра.
Установите это значение достаточно большим, чтобы дождаться последующих запросов от клиента, когда необходимо загрузить больше ресурсов, на которые ссылается одна страница. Но устанавливайте его слишком большим. Поддержание многих бездействующих соединений keep-alive является пустой тратой ресурсов сервера и может быть использовано в своих интересах (D)DoS-атаками. 2 – 5 секунд достаточно для большинства применений. LiteSpeed максимально эффективен и для сайтов не поддерживающих keep-alive.
- Send Buffer Size (bytes) – размер буфера отправки TCP-сокета. 512K – максимально допустимый размер буфера. Оставте это значение как “не установлено” или установите значение 0, чтобы использовать настройку операционной системы по умолчанию. Если ваш веб-сайт обслуживает большие статические файлы, увеличьте размер буфера отправки для повышения производительности.
Установка на меньшее значение немного снизит пропускную способность и уменшит использование памяти на сокет, что позволит серверу иметь больше параллельных сокетов, когда память является узким местом.
Для достижения максимальной производительности TCP добавим(если не сделали этого ранее) в /etc.sysctl.conf:
net.core.wmem_max = 16777216
net.ipv4.tcp_wmem = 8192 65536 16777216
- Receive Buffer Size (bytes) – размер приемного буфера каждого TCP-сокета. 512K – максимально допустимый размер буфера. Рекомендуется оставить это значение как “не установлено” или установить значение 0, чтобы использовать размер буфера операционной системы по умолчанию. Большой буфер приема увеличит производительность при обработке входящих запросов с большими полезными нагрузками, например при загрузке файлов.
Установка этого значения на меньшее значение снизит пропускную способность и уменшит использование памяти на сокет, что позволит серверу иметь больше параллельных сокетов, когда память является узким местом.
Для достижения максимальной производительности TCP добавим(если не сделали этого ранее) в /etc.sysctl.conf:
net.core.rmem_max = 16777216
net.ipv4.tcp_rmem = 8192 87380 16777216
Раздел Request/Response

- Max Request URL Length (bytes) – максимальный размер URL – адреса запроса. URL – это полнотекстовый адрес, используемый для доступа к ресурсу сервера, включая строку запроса. Максимально 65530 байт. Установите минимально возможное значение, чтобы уменьшить использование памяти и помочь отсеять фиктивные запросы и отразить DoS-атаки. 2 – 3K достаточно для большинства веб-сайтов, если только метод HTTP GET не используется с большими строками запросов вместо POST.
- Max Request Header Size (bytes) – задает максимальный размер заголовка HTTP-запроса, включая URL-адрес запроса. Максимум 131072 байта или 128 КБ. Установите минимально возможное значение, чтобы уменьшить использование памяти и помочь отсеять фиктивные запросы и отразить DoS-атаки. 4 – 8K достаточно для большинства веб-сайтов при нормальных обстоятельствах.
- Max Request Body Size (bytes) – задает максимальный размер тела HTTP-запроса. Чтобы предотвратить DoS – атаки, установите минимально необходимое значение. В swap должно быть достаточно свободного места, чтобы вместить все запросы.
- Max Dynamic Response Header Size – максимальный размер заголовка динамически генерируемого ответа. Максимально 131072 байта или 128 КБ. Значение по умолчанию: 32768 или 32K. Установите минимально возможное значение, чтобы помочь распознавать плохие ответы динамически генерируемые внешними приложениями.
- Max Dynamic Response Body Size (bytes) – максимальный размер тела динамически генерируемого ответа. Максимум 2047 МБ. Установите минимально возможное значение, чтобы помочь выявить “плохие” ответы. Это не редкость. Неправильно написанные скрипты часто содержат бесконечный цикл, который приводит к переполнению буфера.
Этот параметр влияет на загрузку файлов. Если клиент запрашивает с сервера документ, видео, фото, архив превышающий размером ограничение в этом параметре, загрузка файла окончится неудачей.
Раздел Static File Delivery Optimization

- Max Cached Small File Size (bytes) – максимальный размер для файлов статики в кэше оперативной памяти. Статические файлы могут обслуживаться четырьмя различными способами: буферным кэшем памяти, отображенным в память кэшем, простым чтением/записью и sendfile(). Файлы, размер которых меньше этого параметра, обслуживаются из кэша памяти. Файлы, размер которых больше этого параметра, но меньше “Max MMAP File Size” будут обслуживаться из кэша сопоставленного с памятью. Файлы, размер которых больше “Max MMAP File Size” будут обслуживаться через обычную функцию чтения/записи или sendfile(). Оптимально обслуживать статические файлы размером менее 4K из буферного кэша памяти.
- Total Small File Cache Size (bytes) – общая память буферного кэша для кэширования/обслуживания небольших статических файлов. Установите значение 120M (при наличии памяти от 4ГБ) – этого достаточно практически в любых случаях.
- Max MMAP File Size (bytes) – максимальный размер статического файла, который может быть размещен в памяти(MMAP). Поскольку сервер имеет 32-битное адресное пространство (2 ГБ), не рекомендуется хранить в памяти очень большие файлы. Установите значение 768K (при наличии памяти от 4ГБ) – этого достаточно практически в любых случаях.
- Total MMAP Cache Size (bytes) – память, которая может быть выделена для кэширования/обслуживания статических файлов среднего размера. Установите значение 80M (при наличии памяти от 4ГБ) – этого достаточно практически в любых случаях.
- Use sendfile() – использование системного вызова sendfile() для обслуживания статических файлов. Sendfile () – это системный вызов “нулевой копии”, который значительно снижает загрузку процессора при передаче очень больших статических файлов. Sendfile() требует оптимизированного драйвера ядра сетевой карты и поэтому может не работать на некоторых сетевых адаптерах.
- File ETag – определяет, следует ли использовать атрибуты файла inode, last-modified time и size при создании заголовка HTTP-ответа ETag для статики. Все три атрибута включены по умолчанию.
Не включайте inode если вы используете “зеркала” или CDN. Тег созданный для одного файла будет отличаться на разных серверах.
Раздел GZIP/Brotli Compression

- Enable Compression – сжатие GZIP/Brotli для статических и динамических ответов. Включите сжатие, чтобы увеличить пропускную способность сети. Текстовые ответы, такие как файлы html, css и javascript могут быть сжаты до половины их первоначального размера.
- Compressible Types – типы MIME подлежащие сжатию. Оставьте этот параметр не заданным или введите значение по умолчанию, чтобы использовать встроенный в сервер список по умолчанию, который уже должен охватывать большинство mime-типов. Значение по умолчанию: text/*,application/x-javascript,application/javascript,application/xml,image/svg+xml,application/rss+xml, application/json,application/vnd.ms-fontobject,application/x-font,application/x-font-opentype, application/x-font-truetype,application/x-font-ttf,font/eot,font/opentype,font/otf,font/ttf,image/x-icon, image/vnd.microsoft.icon,application/xhtml+xml.
Разрешайте только те типы, которые хорошо сжимаются алгоритмами GZIP/Brotli. Двоичные файлы, такие как изображения gif/png/jpeg и флэш – файлы, не выигрывают от сжатия.
- Enable GZIP Dynamic Compression – управляет сжатием GZIP для динамически генерируемых ответов. Динамическое сжатие увеличивает загрузку процессора и памяти, но экономит пропускную способность сети.
- GZIP Compression Level (Dynamic Content) – степень сжатия GZIP, применяемый к динамическому контенту. Колеблется от 1 (самый низкий) до 9 (самый высокий). Этот параметр вступает в силу только при включенном режиме “Enable Compression” и “Enable GZIP Dynamic Compression“. Более высокий уровень сжатия будет использовать больше памяти и циклов процессора. Вы можете установить его больше 6, если ваша машина имеет более 4 ядер и не менее 8 гб оперативной памяти.
- Auto Update Static File – указывает, следует ли разрешить серверу автоматически создавать/обновлять сжатые GZIP/Brotli версии сжимаемых статических файлов или нет. Если задано значение да, то при запросе файла с типом MIME, указанным в разделе “сжимаемые типы”, сервер может создать или обновить соответствующую сжатую версию файла в зависимости от временной метки сжатого файла. Этот сжатый файл создается в разделе “Static Cache Directory“. Имя файла основано на MD5-хэше пути к исходному файлу.
- GZIP Compression Level (Static File) – степень сжатия GZIP, применяемый к статическим файлам. Колеблется от 1 (самый низкий) до 9 (самый высокий).
- Brotli Compression Level (Static File) – степень сжатия Brotli, применяемого к статическим файлам. Колеблется от 1 (самый низкий) до 11 (самый высокий). Html, css и javascrip могут быть сжаты до половины их первоначального размера.
- Static Cache Directory – путь к каталогу, используемому для хранения сжатых файлов статического содержимого. Значение по умолчанию: “Swapping Directory“.
- Max Static File Size (bytes) – максимальный размер статического файла, для которого сервер автоматически создаст сжатый файл. Значение по умолчанию: 10 м.
Не рекомендуется, чтобы сервер создавал/обновлял сжатые файлы для больших файлов. Сжатие блокирует весь процесс сервера, и никакие дальнейшие запросы не могут быть обработаны до тех пор, пока сжатие не будет завершено.
- Min Static File Size (bytes) – минимальный размер статического файла, для которого сервер создаст соответствующий сжатый файл. Нет необходимости сжимать очень маленькие файлы, так как экономия полосы пропускания незначительна.
Раздел SSL Global Settings
Кэширование сессий позволяет клиенту возобновить соединение в течение заданного промежутка времени без необходимости повторного выполнения SSL – “рукопожатия”. Это можно сделать, назначив клиентам идентификатор сеанса с помощью функции Enable Session Cache или создав и используя состояние сессии(Session Ticket) .
Session Ticket будут автоматически обновляться, если генерируются сервером. Если вы используете опцию SSL Session Ticket Key File для создания собственных Session Ticket и управления ими, вы должны сами осуществлять ротацию их с помощью задания cron.

- SSL Strong DH Key – использовние 2048 или 1024-битных ключей Диффи-Хелмана для SSL рукопожатия. Если установлено значение “да”, то для 2048-битных SSL-ключей и сертификатов будут использоваться 2048-битные DH-ключи, а в других ситуациях-1024-битные DH-ключи. Значение по умолчанию – “да”.
- Enable Multiple SSL Certificates – позволяет listeners/vhosts использовать несколько SSL-сертификатов. Если включено несколько сертификатов, ожидается, что сертификаты/ключи будут следовать схеме именования. Если сертификат называется server.crt, то другие возможные имена сертификатов – server.crt.rsa, server.crt.dsa, server.crt.ecc. Если “не установлено”, то по умолчанию используется значение “Нет”
- Enable Session Cache – кэширование идентификаторов сеансов с помощью параметра OpenSSL по умолчанию.
- Session Cache Size (bytes) – максимальное количество идентификаторов сеансов SSL для хранения в кэше. Значение по умолчанию – 1000000.
- Session Cache Timeout (secs) – время жизни идентификатора сеанса в кэше, прежде чем потребуется повторное согласование. По умолчанию – 3600.
- Enable Session Tickets – включает идентификаторы сеанса с использованием параметра OpenSSL по умолчанию.
- SSL Session Ticket Lifetime (secs) – определяет, как долго Session Tickets будет действителен, прежде чем потребуется повторное согласование. По умолчанию – 3600.
- SSL Session Ticket Key File – позволяет администратору создавать и поддерживать свои SSL Ticket Key. Длина файла должна составлять 48 байт. Если этот параметр оставить пустым, балансировщик нагрузки будет генерировать и вращать свой собственный набор ключей. Важно: для поддержания должной секретности настоятельно рекомендуется менять ключ по истечении SSL Session Ticket Lifetime. Если это невозможно сделать, рекомендуется оставить это поле пустым.
Раздел QUIC
Протокол QUIC (название расшифровывается как Quick UDP Internet Connections) — новый прогрессивный способ передачи информации в интернете, построенный поверх протокола UDP, вместо общепринятого ранее использования TCP. QUIC заменяет собой весь TLS-стек и часть HTTP/2/3.

- Enable QUIC – включает QUIC для сетевого протокола в целом. Значение по умолчанию – да.
- QUIC SHM Directory – указывает каталог, используемый для сохранения данных QUIC в общую память. По умолчанию используется каталог SHM сервера /dev/shm.
- QUIC Versions – рекомендуется оставить этот параметр пустым, чтобы автоматически применить наилучшую конфигурацию.
- Congestion Control – используемый алгоритм. Опция “по умолчанию” – лучший выбор.
- Connection Flow Control Window – начальный размер буфера, выделенного для быстрого соединения. Больший размер окна будет использовать больше памяти.
- Max Connection Flow Control Window – задает максимальный размер буфера окна управления потоком соединений, который может быть достигнут благодаря автоматической настройке окна. Значение по умолчанию равно 0, что означает, что используется значение “Connection Flow Control Window” и автоматическая настройка не выполняется.
- Stream Flow Control Window – начальный объем данных, который быстрое соединение готово обработать в потоке.
- Max Stream Flow Control Window – задает максимальный размер данных который быстрое соединение готово обработать в потоке. Значение по умолчанию равно 0, что означает, что используется значение “Stream Flow Control Window” и автоматическая настройка не выполняется.
- Max Concurrent Streams Per Connection – максимальное количество параллельных потоков, разрешенных для быстрого подключения. Значение по умолчанию – 100.
- Handshake Timeout (secs) – время до завершения установления связи, после чего соединение прерывается. Значение по умолчанию – 10.
- Idle Timeout (secs) – время в секундах, по истечении которого неиспользуемое соединение будет закрыто. Значение по умолчанию – 30.
- Enable DPLPMTUD – разрешение максимального блока передачи данных (PLPMTUD).
- PLPMTU Base Value – значение PLPMTUD (размер пакета без заголовков) в байтах, которое QUICK будет использовать по умолчанию. Установка этого значения в 0 позволит автоматически выбрать размер. Эта настройка должна быть установлена ниже, чем “PLPMTU Max Value“.
- PLPMTU Max Value – PLPMTU (максимальный размер пакета без заголовков) измеряет верхний предел в байтах. Этот параметр используется для ограничения “максимального размера пакета” в PLPMTUD. Установка этого значения в 0 позволит быстро выбрать размер (по умолчанию LSQUIC предполагает, что MTU составляет 1500 байт (Ethernet)). Эта настройка должна быть установлена выше, чем “PLPMTU Base Value“. Синтаксис: 0 или целое число от 1200 до 65527. Значение по умолчанию: 0. Синтаксис: 0 или целое число от 1200 до 65527.
По умолчанию, MTU составляет 1500 байт или ниже для Ethernet. Вы можете попробовать установить для MTU другое значение, например 9000. Это приведет к росту пропускной способности сетевого интерфейса, но далеко не все сетевые карты и интерфейсы поддерживают такую возможность.
Server Configuration > Security

Настройки этого раздела требуют глубоких знаний и опыта. Вы можете легко купировать угрозы безопасности и предотвратить DDOS атаки без ущерба (или свести его к минимуму) для производительности и стабильности сервера. Оставьте значения “по умолчанию” если нет необходимости в защите сервера от атак.
Структура вкладки Server Configuration > Security:
- File Access
- Per Client Throttling – настройки управления подключением, основанные на IP-адресе клиента. Эти настройки помогают нивелировать DoS-атаки (отказ в обслуживании) и DDoS-атаки (распределенный отказ в обслуживании).
- CGI Settings – настройки процессов CGI. Ограничения памяти и процессов по умолчанию для внешних приложений, если ограничения не были установлены явно.
- LS reCAPTCHA – reCAPTCHA Protection – сервис для снижения большой нагрузки на сервер. Защита reCAPTCHA активируется при необходимости автоматически. После активации все запросы от недоверенных(настроенных) клиентов будут перенаправлены на страницу проверки reCAPTCHA. После проверки клиент будет перенаправлен на нужную ему страницу или запрос будет отклонен и блокирован.
Следующие ситуации активируют защиту reCAPTCHA:
1) Сервер или хост исчерпали максимум одновременных запросов от одного клиента и превысили установленный предел.
2) Анти-DDoS включен, и клиент попадает на url-адрес подозрительным образом. Клиент сначала перенаправится на reCAPTCHA, а не получит отказ в обслуживании.
3) Для активации reCAPTCHA с помощью правил перезаписи предусмотрена новая среда rewriterule. ‘verify captcha’ можно настроить для перенаправления клиентов на reCAPTCHA.
Специальное значение ‘: deny’ может быть установлено для отказа клиенту, если он слишком много раз терпел неудачу.
Например, [E=verify captcha] всегда будет перенаправляться на reCAPTCHA до тех пор, пока не будет проверена.
[[E=verify captcha: deny] перенаправит на reCAPTCHA до тех пор, пока не будет использовано максимум попыток, после чего клиенту будет отказано в обслуживани.
- Bubblewrap Container – создает новое, полностью пустое пространство для монтирования, где корень находится на tmpfs, который невидим с хоста и будет автоматически очищен при завершении процесса. Bubblewrap запускает приложение в изолированной среде, где оно имеет ограниченный доступ к операционной системе или пользовательским данным, таким как домашний каталог.
- Access Denied Directories – каталоги, доступ к которым должен быть заблокирован. Добавьте каталоги, содержащие конфиденциальные данные, в этот список, чтобы предотвратить случайное раскрытие конфиденциальных файлов клиентам. Добавьте “*” к пути, чтобы включить все подкаталоги. Этот параметр запрещает только обнаружение статических файлов из этих каталогов, но не блокирует выполнение внешних скриптов, таких как PHP/Ruby/CGI.
- Access Control – определяет, какие подсети и / или IP – адреса могут получить доступ к серверу. На уровне сервера этот параметр влияет на все виртуальные хосты. Настройте управление доступом, уникальное для каждого виртуального хоста на уровне виртуального хоста. Параметры уровня виртуального хоста не будут переопределять параметры уровня сервера.
Блокировка / разрешение IP – адреса определяется комбинацией разрешенного списка и запрещенного списка. Если вы хотите заблокировать только определенные IP-адреса или подсети, поместите * или все в “разрешенный список” и перечислите заблокированные IP-адреса или подсети в “запрещенный список”.
Если вы хотите разрешить только определенные IP-адреса или подсети, поместите * или все в “запрещенный список” и перечислите разрешенные IP-адреса или подсети в “разрешенный список”. Для определения доступа будет использоваться настройка наименьшей области действия, подходящей для IP-адреса.
Уровень сервера: доверенные IP-адреса или подсети должны быть указаны в “разрешенном списке”, добавив конечную букву “Т”. Доверенные IP-адреса или подсети не зависят от ограничений подключения / регулирования. Только управление доступом на уровне сервера может настроить доверенные IP-адреса/подсети.
Используйте настройку на уровне сервера для общих ограничений, которые применяются ко всем виртуальным хостам.
Раздел File Access

- Follow Symbolic Link – значение по умолчанию для символьных ссылок на уровне сервера при обслуживании статических файлов. Для лучшей безопасности выберите Нет. Для достижения наилучшей производительности выберите Да.
- Check Symbolic Link – проверяет символические ссылки из “Access Denied Directories”, когда включена функция “Follow Symbolic Link”. Если этот параметр включен, то канонический путь ресурса, на который ссылается URL – адрес. Доступ будет запрещен, если ссылается на закрытый каталог. Для обеспечения максимальной безопасности включите эту опцию. Для лучшей производительности отключите.
- Force Strict Ownership – строгая проверка прав владения файлами. Если включено, веб-сервер проверит, совпадает ли владелец обслуживаемого файла с владельцем виртуального хоста. Если отличается, то будет возвращена ошибка 403 Access Denied. По умолчанию эта функция отключена. Если вы передоставляете услуги хостинга, включите эту проверку для повышения безопасности.
Раздел Per Client Throttling

- Static Requests/second – максимальное количество запросов к статическому контенту, поступающих с одного IP-адреса, которые могут быть обработаны за одну секунду независимо от количества установленных подключений. Когда этот предел достигнут, все поступающие запросы откладываются до следующей секунды. Ограничения запросов для динамически генерируемого контента не зависят от этого ограничения. Ограничения на запросы для каждого клиента могут быть установлены на уровне сервера или виртуального хоста. Параметры уровня виртуального хоста переопределяют параметры уровня сервера. На доверенные IP – адреса или подсети ограничение не распространяется.
- Dynamic Requests/second – максимальное количество запросов к динамически генерируемому контенту, поступающих с одного IP-адреса, которое может быть обработано в каждую секунду независимо от количества установленных подключений. Когда этот предел достигнут, все запросы к динамическому контенту откладываются до следующей секунды. Это ограничение может быть установлено на уровне сервера или виртуального хоста. Параметры уровня виртуального хоста переопределяют параметры уровня сервера. На доверенные IP – адреса или подсети ограничение не распространяется.
- Outbound Bandwidth (bytes/sec) – максимально допустимая исходящая пропускная способность на один IP – адрес, независимо от количества установленных соединений. Реальная пропускная способность может оказаться немного выше этого значения по соображениям эффективности. Полоса пропускания выделяется блоками по 4 КБ. Ограничения пропускной способности для каждого клиента (байт / сек) могут быть установлены на уровне сервера или виртуального хоста, где параметры уровня виртуального хоста переопределяют параметры уровня сервера. Установите пропускную способность кратной 8 КБ для повышения производительности.
- Inbound Bandwidth (bytes/sec) – максимально допустимая входящая пропускная способность с одного IP-адреса, независимо от количества установленных соединений. Реальная пропускная способность может оказаться немного выше этого значения по соображениям эффективности. Полоса пропускания выделяется от 1 единицы. Установите значение 0, чтобы отключить. Ограничения пропускной способности для каждого клиента (байт / сек) могут быть установлены на уровне сервера или виртуального хоста, где параметры уровня виртуального хоста переопределяют параметры уровня сервера.
- Connection Soft Limit – “мягкое” ограничение одновременных подключений, разрешенных с одного IP-адреса. Этот предел может быть временно превышен в течение “Grace Period (sec)”до тех пор, пока число соединений не будет ниже” Connection Hard Limit”. Например, если страница содержит много небольших графиков, браузер может попытаться настроить несколько соединений одновременно, особенно для клиентов HTTP / 1.0. Вы хотели бы разрешить эти соединения на короткий период. Клиенты HTTP / 1.1 также могут настроить несколько подключений для ускорения загрузки, а SSL требует отдельных подключений от не-SSL-подключений. Убедитесь, что лимит установлен правильно, чтобы не оказывать негативного влияния на нормальное обслуживание. Рекомендуемый предел составляет от 5 до 10. Меньшее число позволит обслуживать более разных клиентов. Установите высокое значение, когда вы выполняете тестовые запросы.
Рекомендуемые значения Connection Soft Limit стоит увеличить для более надежного функционирования vhosts (сайтов). Установите значение в 100 для начала как минимум.
- Connection Hard Limit – задает максимальное количество разрешенных одновременных подключений с одного IP-адреса. Этот лимит всегда соблюдается, и клиент никогда не сможет превысить его. Клиенты HTTP / 1.0 обычно пытаются установить столько соединений, сколько им нужно для загрузки встроенного контента одновременно. Этот предел должен быть установлен достаточно высоко, чтобы клиенты HTTP / 1.0 все еще могли получить доступ к сайту. Рекомендуемый лимит составляет от 20 до 50 в зависимости от содержания вашей веб-страницы и загруженности трафика. Меньшее число позволит обслуживать более разных клиентов.
Рекомендуемые значения Connection Hard Limit стоит увеличить для более надежного функционирования vhosts (сайтов). Установите значение в 500 для начала как минимум.
- Block Bad Request – блокировка IP – адресов, с которых поступают “плохие” HTTP-запросы в течение ” Banned Period (sec)”. По умолчанию – да. Это помогает блокировать атаки ботнетов, которые неоднократно посылают нежелательные запросы.
- Grace Period (sec) – установите как долго могут приниматься новые соединения после того, как количество соединений, установленных с одного IP – адреса, превысит “Connection Soft Limit”. В течение этого периода новые соединения будут приниматься, если общее количество соединений все еще ниже “Connection Hard Limit”. По истечении этого периода, если количество подключений все еще превышает “Connection Soft Limit”, то нарушающий IP – адрес будет заблокирован на “Banned Period (sec)”. Подберите параметр правильно – достаточно большой для загрузки полной страницы, но достаточно низкий, чтобы предотвратить преднамеренные атаки.
- Banned Period (sec) – указывает, как долго новые соединения будут отклоняться с IP – адреса, если по истечении “Grace Period (sec)”количество подключений все еще превышает”Connection Soft Limit”. Если IP – адреса забанены повторно, увеличте срок запрета.
Раздел CGI Settings

- CGI Daemon Socket – уникальный адрес сокета, используемый для связи с демоном CGI. LiteSpeed server использует автономный демон CGI для создания сценариев CGI для обеспечения наилучшей производительности и безопасности. Сокет по умолчанию – “uds:/ / $SERVER_ROOT/admin/conf/. cgid.sock”. Если вам нужно поместить его в другое место, укажите доменный сокет Unix. Пример: UDS:/ / tmp/lshttpd/cgid.sock.
- Max CGI Instances – максимальное количество одновременных процессов CGI, которые может запустить сервер. Для каждого запроса к CGI – скрипту сервер должен запустить автономный процесс CGI. В системе Unix количество параллельных процессов ограничено. Параллельные процессы ухудшают производительность всей системы и являются одним из способов выполнения DoS-атаки. Сервер LiteSpeed направляет запросы к CGI – скриптам и ограничивает параллельные CGI – процессы для обеспечения оптимальной производительности и надежности. Жесткий предел – 2000. Большое значение редко дает более высокую производительность. В большинстве случаев нижний предел обеспечивает лучшую производительность и безопасность. Более высокий предел поможет только тогда, когда задержка ввода – вывода чрезмерна во время обработки CGI.
- Minimum UID – минимальный идентификатор пользователя, разрешенный для запуска внешних приложений при запуске от имени указанного пользователя. Выполнение внешнего скрипта с идентификатором пользователя ниже указанного здесь значения будет отклонено. Установите значение достаточно большим, чтобы исключить всех системных / привилегированных пользователей.
- Minimum GID – минимальный идентификатор группы, разрешенный для запуска внешних приложений при запуске в качестве указанной группы. Выполнение внешнего скрипта с идентификатором группы ниже указанного здесь значения будет отклонено.
- Force GID – идентификатор группы, который будет использоваться для всех внешних приложений, запущенных в режиме suEXEC. Если установлено ненулевое значение, все внешние приложения suEXEC (CGI/FastCGI/LSAPI) будут использовать этот идентификатор группы. Это может быть использовано для предотвращения доступа внешнего приложения к файлам, принадлежащим другим пользователям.
Например, в среде общего хостинга LiteSpeed работает как пользователь “www-data”, группа “www-data”. Каждый docroot принадлежит учетной записи Пользователя с группой “www-data” и режимом разрешений 0750.
Если Forced имеет значение ” nogroup “(или любая другая группа, кроме”www-data”), все внешние приложения suEXEC будут работать от имени конкретного пользователя, но в группе “nogroup”.
Эти внешние прикладные процессы по-прежнему будут иметь доступ к файлам, принадлежащим этому конкретному пользователю (из-за их идентификатора пользователя), но не будут иметь группового разрешения на доступ к чужим файлам.
Сервер, с другой стороны, все еще может обслуживать файлы в каталоге docroot любого пользователя (из-за его идентификатора группы).
- umask – umask по умолчанию для процессов CGI. Подробнее см. man 2 umask. Это также служит значением по умолчанию для внешних приложений “umask”. Допустимый диапазон значений [000] – [777].
- CGI Priority – приоритет внешнего процесса. Значение колеблется от -20 до 20. Меньшее число означает более высокий приоритет. Процесс CGI не может иметь более высокого приоритета, чем веб-сервер. Если этот приоритет установлен на меньшее число, чем у сервера, то для этого значения будет использоваться приоритет сервера.
- CPU Soft Limit (sec) – ограничение по времени потребления процессора в секундах для процесса CGI. Когда процесс достигнет “soft limit”, он будет уведомлен сигналом. Если это значение отсутствует или равно 0, будет использоваться значение по умолчанию операционной системы.
- CPU Hard Limit (sec) – максимальный лимит времени потребления процессора в секундах для процесса CGI. Если процесс продолжает потреблять процессорное время и достигает заданного предела, процесс будет принудительно завершен. Если это значение отсутствует или равно 0, будет использоваться значение по умолчанию операционной системы.
- Memory Soft Limit (bytes) – ограничение потребления памяти в байтах для внешнего приложения запущенного сервером. Основная цель этого ограничения – предотвратить чрезмерное использование памяти из-за программных ошибок или преднамеренных атак, а не вводить ограничение на нормальное использование. Параметр может быть установлен на уровне сервера или на уровне отдельного внешнего приложения. Ограничение на уровне сервера будет использоваться, если оно не установлено на уровне отдельного приложения. Настройка операционной системы по умолчанию будет использоваться, если значение отсутствует на обоих уровнях или установлено в 0.
- Memory Hard Limit (bytes) – почти то же самое, что и “Memory Soft Limit“, за исключением того, что мягкий предел может быть поднят до жесткого предела из пользовательского процесса. Жесткий предел может быть установлен на уровне сервера или на уровне отдельного внешнего приложения. Ограничение на уровне сервера будет использоваться, если оно не установлено на уровне отдельного приложения. Значение по умолчанию операционной системы будет использоваться, если оно отсутствует на обоих уровнях или установлено в 0.
- Process Soft Limit – ограничивает общее количество процессов, которые могут быть созданы от имени пользователя. Все существующие процессы будут учитываться с учетом этого предела, а не только новые процессы, которые будут запущены. Ограничение может быть установлено на уровне сервера или на уровне отдельного внешнего приложения. Ограничение на уровне сервера будет использоваться, если оно не установлено на уровне отдельного приложения. Настройка операционной системы по умолчанию будет использоваться, если это значение равно 0 или отсутствует на обоих уровнях.
PHP-скрипты могут вызывать процессы ветвления. Основная цель этого ограничения – последняя линия обороны для предотвращения вилочных бомб и других атак, вызванных процессами PHP, создающими другие процессы.
Установка этого параметра слишком маленьким может серьезно повредить функциональности.
Если для параметра Run On StartUp установлено значение ” Yes (Daemon mode)”, фактический предел процесса будет выше этого значения, чтобы убедиться, что родительские процессы не ограничены.
- Process Hard Limit – почти то же самое, что и “Process Soft Limit”, за исключением того, что мягкий предел может быть поднят до жесткого предела из пользовательского процесса. Process Hard Limit может быть установлен на уровне сервера или на уровне отдельного внешнего приложения. Ограничение на уровне сервера будет использоваться, если оно не установлено на уровне отдельного приложения. Значение по умолчанию операционной системы будет использоваться, если оно отсутствует на обоих уровнях или установлено в 0.
- cgroups – групповые настройки процессов CGI, если они поддерживаются текущей ОС. В настоящее время поддерживаются Red Hat/Centos Linux v7.5+ и Ubuntu 18.04+. Текущий исполняющий пользователь будет использоваться для определения того, какую конфигурацию группы применить. Установка этого параметра в значение отключено на уровне сервера приведет к отключению этого параметра на всем сервере. Во всех остальных случаях параметр уровня сервера может быть переопределен на уровне виртуального хоста.
Раздел LS reCAPTCHA

Если параметр Enable reCAPTCHA установлен в значение “Yes” на уровне сервера, защита reCAPTCHA все еще может быть отключена на уровне виртуального хоста.
Пара сайт / секретный ключ уровня сервера должна быть настроена так, чтобы игнорировать проверку домена, если сервер управляет несколькими доменами. В противном случае проверка reCAPTCHA не будет работать должным образом.
- Enable reCAPTCHA – параметр должен быть установлен в значение “Yes” на уровне сервера, прежде чем можно будет использовать функцию защиты reCAPTCHA.
- Site Key – открытый ключ, предоставляемый Google через свой сервис reCAPTCHA. Если он не установлен, будет использоваться ключ сайта по умолчанию.
- Secret Key – закрытый ключ, предоставляемый Google через свой сервис reCAPTCHA. Секретный ключ по умолчанию будет использоваться, если он не установлен.
- reCAPTCHA Type – тип reCAPTCHA для использования с парами ключей. Если пара ключей не была предоставлена и этот параметр установлен в значение Not Set, то будет использоваться пара ключей по умолчанию типа Invisible. Будет отображаться флажок рекапчи для посетителей. Осуществляется автоматическая проверка рекапчи, в случае успеха перенаправит на нужную страницу.
- Max Tries – максимальное количество попыток рекапчи, разрешенных до отказа посетителю. Значение по умолчанию – 3.
- Allowed Robot Hits – количество попыток в 10 секунд, чтобы позволить “хорошим ботам” пройти. Боты все равно будут отклонены, когда сервер находится под нагрузкой. Значение по умолчанию – 3.
- Bot White List – список user agents имеющих доступ. Синтаксис: список пользовательских агентов, по одному на строку. Поддерживается регулярное выражение.
- Connection Limit – количество одновременных подключений (SSL и не SSL) для активации reCAPTCHA. reCAPTCHA будет использоваться до тех пор, пока параллельные соединения не упадут ниже этого числа. Значение по умолчанию – 15000.
- SSL Connection Limit – количество одновременных SSL – соединений, необходимых для активации reCAPTCHA. reCAPTCHA будет использоваться до тех пор, пока параллельные соединения не упадут ниже этого числа. Значение по умолчанию – 10000.
Раздел Bubblewrap Container

- Bubblewrap Container – Установите значение ON, если вы хотите запускать процессы CGI (включая PHP-программы) в песочнице Bubblewrap. Bubblewrap Container должен быть установлен и сконфигурирован в системе перед использованием этой настройки.
- Bubblewrap Command – Значение по умолчанию: /bin/bwrap –ro-bind /usr /usr –ro-bind /lib /lib –ro-bind-try /lib64 /lib64 –ro-bind /bin /bin –ro-bind /sbin /sbin –dir /var –dir /tmp –proc /proc –symlink../tmp var/tmp –dev /dev –ro-bind-try /etc/localtime /etc/localtime –ro-bind-try /etc/ld.so.cache /etc/ld.so.cache –ro-bind-try /etc/resolv.conf /etc/resolv.conf –ro-bind-try /etc/ssl /etc/ssl –ro-bind-try /etc/pki /etc/pki –ro-bind-try /etc/man_db.conf /etc/man_db.conf –ro-bind-try /home/$USER /home/$USER –bind-try /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock –bind-try /home/mysql/mysql.sock /home/mysql/mysql.sock –bind-try /tmp/mysql.sock /tmp/mysql.sock –unshare-all –share-net –die-with-parent –dir /run/user/$UID ‘$PASSWD 65534’ ‘$GROUP 65534’
Раздел Access Denied Directories

Каталоги к которым запрещен прямой доступ через http / https для защиты конфиденциальных и служебных данных сервера (например, конфигураций, приватной информации или чего-то еще). Более гибко можно настраивать разрешения / запреты для файлов и каталогов через context или Rewrite Rules в .htaccess.
Раздел Access Control

Настройте управление доступом на уровне сервера, виртуального хоста и контекста. Если есть контроль доступа на уровне сервера, то правила виртуального хоста будут применены после того, как правила сервера будут удовлетворены. Чтобы запретить доступ с определенного адреса, поместите в “Allowd list” список разрешенных, а подсеть или IP – адрес в список запрещенных (Denied list).
Server Configuration > External App

External Applications – веб-сервер LiteSpeed может пересылать запросы внешним приложениям для обработки и генерации динамического контента. LiteSpeed поддерживает семь типов внешних приложений (роли сервера): FastCGI App, FastCGI Authorizer, web server, servlet engine, LiteSpeed SAPI application, load balancer, and piped logger.
В этой статье мы рассматриваем только LiteSpeed SAPI – “универсальную” роль сервера. Другие роли сервера:
FastCGI: стандартное приложение FastCGI.
FastCGI Authorizer: приложение FastCGI для авторизированных процессов.
Сервлет: сервлет для коннектора Ajp13, такого как Tomcat.
Веб-сервер: веб-сервер или сервер приложений, поддерживающий протокол HTTP.
Балансировщик нагрузки: виртуальное приложение, которое может распределять нагрузку между рабочими приложениями.
Piped Logger: приложение для обработки записей журнала доступа, полученных в потоке STDIN.
- LiteSpeed SAPI (LiteSpeed Server Application Programming Interface) – приложение взаимодействующее с веб-сервером LiteSpeed через LSAPI, быстрый, масштабируемый серверный интерфейс, специально разработанный для веб-сервера LiteSpeed для достижения максимальной эффективности.
Механизм действия Isapi аналогичен FastCGI, но приложения ISAPI минимум на 30% быстрее, чем аналогичные приложения FastCGI. LSAPI настоятельно рекомендуется использовать по умолчанию для поддерживаемых приложений. (В настоящее время LSAPI поддерживает приложения, написанные на PHP, Ruby и Python.)

- Name – уникальное имя для внешнего приложения. Вы будете использовать его его в других настройках конфигурации.
- Address – уникальный адрес сокета для внешнего приложения. Поддерживаются сокеты IPv4 / IPv6 и доменные сокеты Unix (UDS). Сокеты IPv4 / IPv6 могут использоваться для связи по сети. UDS можно использовать только в том случае, если внешнее приложение находится на той же машине, что и сервер. Доменные сокеты Unix обычно обеспечивают более высокую производительность, чем сокеты IPv4.
- Max Connections – максимальное количество одновременных подключений, которые могут быть установлены между сервером и внешним приложением. Этот параметр определяет, сколько запросов может быть обработано одновременно внешним приложением, однако реальный предел зависит от самого внешнего приложения. Установка этого значения на максимум не поможет, если внешнее приложение недостаточно быстро или не может масштабироваться до большого количества одновременных запросов. Установка настройки на значение, которое не будет перегружать внешнее приложение, обеспечит наилучшую производительность / пропускную способность.
- Environment – дополнительные переменные среды для внешнего приложения. Синтаксис: ключ=значение. Несколько переменных могут быть разделены символом ” ENTER”
Установите для начала:
PHP_LSAPI_CHILDREN=60
LSAPI_AVOID_FORK=200M
LSAPI_CLEAN_SHUTDOWN=1
Описание этих и других переменнных в статье https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:php:lsapi-environment-variables.
- Initial Request Timeout (secs) – максимальное время в секундах, в течение которого сервер будет ждать ответа внешнего приложения на первый запрос по новому установленному соединению. Если сервер не получает никаких данных от внешнего приложения в течение этого времени, он отметит это соединение как плохое. Это помогает как можно быстрее выявить проблемы связи с внешними приложениями. Если обработка некоторых запросов занимает много времени, увеличьте это значение чтобы избежать ошибки 503.
- Retry Timeout (secs) – период времени, в течение которого сервер ожидает повторной попытки подключения внешнего приложения, у которого ранее были проблемы со связью. Установите в 0 для начала.
- Persistent Connection – указывает, следует ли сохранять соединение открытым после обработки запроса. Постоянные соединения повышают производительность, но некоторые внешние приложения FastCGI не полностью поддерживают постоянные соединения. Значение по умолчанию – “YES”.
- Connection Keep-Alive Timeout – максимальное время в секундах для поддержания постоянного соединения в режиме ожидания открытым. При установке значения ” -1 ” соединение никогда не будет сброшено. Если установлено значение 0 или больше, соединение будет закрыто по истечении этого времени.
- Response Buffering – указывает, следует ли буферизировать ответы, полученные от внешних приложений.
- Start By Server – запуск приложения автоматически. Только приложения FastCGI и LSAPI, работающие на одной машине, могут быть запущены сервером автоматически.
- Command – полная командная строка, включая параметры для выполнения внешнего приложения. Обязательное значение, если включен параметр “Start by Server”. Параметр должен быть заключен в двойную или одинарную кавычку, если он содержит символы пробела или табуляции.
- Back Log – очередь задач слушающего сокета. Требуется, если включена функция “Start by Server“.
- Instances – максимальное количество экземпляров внешнего приложения, которое будет создано сервером. Это необходимо, если включена функция “Start by Server“. Большинство приложений FastCGI / LSAPI могут обрабатывать только один запрос на экземпляр процесса, и для этих типов приложений экземпляры должны быть установлены в соответствии со значением “Max Connections”. Некоторые приложения FastCGI / LSAPI могут порождать несколько дочерних процессов для одновременной обработки нескольких запросов. Для этих типов приложений экземпляры должны быть установлены в “1”, а переменные среды используются для управления количеством дочерних процессов, которые может породить приложение.
- Run As User – внешнее приложение будет работать под указанным именем пользователя. Если этот параметр не задан, то будут использованы параметры уровня виртуального хоста.
- Run As Group – внешнее приложение будет работать под указанным именем группы. Если этот параметр не задан, то будут использованы параметры уровня виртуального хоста.
- umask – значение umask по умолчанию для процессов CGI. Подробнее см. man 2 umask.
- Run On Start Up – определяет, следует ли запускать внешнее приложение при запуске сервера. Применимо только к внешним приложениям, которые могут управлять своими собственными дочерними процессами и где значение “Instances” равно “1”. Если этот параметр включен, то внешние процессы будут создаваться при запуске сервера, а не во время выполнения. При выборе “Yes (Detached mode)” все процессы могут быть перезапущены на уровне сервера или виртуального хоста с помощью файла ‘.lsphp_restart.txt ‘ в каталоге $SERVER_ROOT/admin/tmp/ или $VH_ROOT/ соответственно.
- Max Idle Time – максимальное время простоя перед остановкой внешнего приложения сервером чтобы освободить ресурсы. При установке значения ” -1 ” внешнее приложение не будет остановлено сервером, если оно не работает в режиме группы процессов, где простаивающие внешние приложения будут остановлены через 30 секунд. Значение по умолчанию – “-1”.
- Priority – приоритет внешнего процесса. Значение колеблется от -20 до 20. Меньшее число означает более высокий приоритет. Внешний процесс приложения не может иметь более высокого приоритета, чем веб-сервер. Если этот приоритет установлен на меньшее число, чем у сервера, то для этого значения будет использоваться приоритет сервера.
- Memory Soft Limit (bytes) – ограничение потребления памяти в байтах для процесса внешнего приложения . Основная цель этого ограничения – предотвратить чрезмерное использование памяти из-за программных ошибок или преднамеренных атак, а не вводить ограничение на нормальное использование. Убедитесь что вы выделили достаточно свободного места, иначе ваше приложение будет завершено и может быть возвращена ошибка 503. Параметр может быть установлен на уровне сервера или на уровне отдельного внешнего приложения. Ограничение на уровне сервера будет использоваться если оно не установлено на уровне отдельного приложения. Настройка операционной системы по умолчанию будет использоваться если значение отсутствует на обоих уровнях или установлено в 0.
- Memory Hard Limit (bytes) – почти то же самое, что и “Memory Soft Limit“, за исключением того, что Memory Soft Limit может быть поднят до Memory Hard Limit из пользовательского процесса. Memory Hard Limit может быть установлен на уровне сервера или на уровне отдельного внешнего приложения. Ограничение на уровне сервера будет использоваться, если оно не установлено на уровне отдельного приложения. Значение по умолчанию операционной системы будет использоваться, если оно отсутствует на обоих уровнях или установлено в 0.
- Process Soft Limit – ограничивает общее количество процессов, которые могут быть созданы от имени пользователя. Все существующие процессы будут учитываться с учетом этого предела, а не только новые процессы, которые будут запущены. Ограничение может быть установлено на уровне сервера или на уровне отдельного внешнего приложения. Ограничение на уровне сервера будет использоваться, если оно не установлено на уровне отдельного приложения. Настройка операционной системы по умолчанию будет использоваться, если это значение равно 0 или отсутствует на обоих уровнях.
PHP-скрипты могут порождать дочерние процессы. Основная цель этого ограничения – последняя линия обороны для предотвращения “вилочных (fork)” бомб и других атак, вызванных процессами PHP, создающими другие процессы.
Установка этого параметра в слишком низкое значение может серьезно повредить функциональности. Таким образом, настройка будет проигнорирована ниже определенного уровня.
Если для параметра Run On StartUp установлено значение ” Yes (Daemon mode)”, фактический предел процесса будет выше этого значения, чтобы убедиться, что родительские процессы не ограничены.
- Process Hard Limit – почти то же самое, что и “Process Soft Limit“, за исключением того, что Process Soft Limit может быть поднят до Process Hard Limit из пользовательского процесса. Process Hard Limit может быть установлен на уровне сервера или на уровне отдельного внешнего приложения. Ограничение на уровне сервера будет использоваться, если оно не установлено на уровне отдельного приложения. Значение по умолчанию операционной системы будет использоваться, если оно отсутствует на обоих уровнях или установлено в 0.
Server Configuration > Script Handler

Обработчик скриптов может быть CGI, FCGI app, обработчиком модулей, движком сервлетов или прокси-сервером веб-сервера. Кроме CGI, другие обработчики должны быть предопределены в разделе “External App“.

- Suffixes – суффиксы файлов скриптов, которые будут обрабатываться обработчиком скриптов. Суффиксы должны быть уникальными. Сервер автоматически добавит специальный тип MIME (“application/x-httpd – [suffix]”) для первого суффикса в списке. Например, для суффикса “php53” будет добавлен MIME-тип “application/x-httpd-php53”. Суффиксы кроме первого нужно настроить в настройках “MIME Settings”. Хотя вы определяете суффиксы в этом поле, обработчики сценариев используют типы MIME, а не суффиксы, чтобы решить, какие сценарии обрабатывать. Укажите только те суффиксы, которые вам действительно нужны.
- Handler Type – тип внешнего приложения, которое обрабатывает файлы сценариев. Доступные типы: CGI, FastCGI, веб-сервер, LSAPI, балансировщик нагрузки, или сервлет. Для FastCGI, веб-сервера и движка сервлетов необходимо указать “Handler Name”. Это имя внешнего приложения, заданное в разделе “External Apps“.
- Handler Name – имя внешнего приложения, которое обрабатывает файлы сценариев, если тип обработчика FastCGI, Web Server, LSAPI, Load Balancer или Servlet Engine.
Не трогайте настройки в данном разделее без необходимости. Если вы не изменяете / добавляете роли сервера, то все оставьте по умолчанию.
Server Configuration > App Server

В данной вкладке настраиваются параметры сервера приложений для Rack/Rails, Python и Node.js. Если у вас обычный web сервер / хостинг сайтов ничего настраивать не следует.
Server Configuration > Modules

Модули могут быть дополнительно сконфигурированы на уровнях виртуального хоста, контекста и обработчика сценариев. Конкретные уровни конфигурации всегда будут переопределять настройки верхнего уровня. Например, конфигурации на уровне виртуального хоста переопределяют конфигурации на уровне сервера, а конфигурации на уровне контекста переопределяют конфигурации на уровне виртуального хоста.
Доступны следующие модули:
- Cache Module
- ModSecurity Module
- PageSpeed Module
- Lua Module
- ModLSPHP Module
Некоторые модули Open LiteSpeed необходимо установить в систему до настройки.
Настройка модулей Open LiteSpeed в WebAdmin Console

- Module – имя внешнего или внутреннего модуля, загружаемого при запуске сервера. Значение, используемое для внешних модулей, должно совпадать с именем файла модуля”. so “ в разделе $SERVER_ROOT/modules/module name.so для того, чтобы быть загруженным серверным приложением. Это требует, чтобы сервер был перезапущен после регистрации нового модуля. Значение, используемое для внутренних модулей, должно соответствовать имени модуля, использованному при построении модуля. Например, для внутреннего модуля кэша, входящего в состав сервера, необходимо установить значение “cache“.
- Notes – ваши примечания
- Is Internal – укажите, является ли модуль внутренним модулем, а не внешней библиотекой .so.
- Module Parameters – параметры модуля. Параметры модуля определяются разработчиком модуля. Установите значение в конфигурации сервера, чтобы глобально присвоить значение по умолчанию. Пользователь может переопределить этот параметр на уровне listeners, виртуального хоста или контекста.
Пример:
Для модуля cache на уровне сервера должны быть установлены следующие параметры:
checkPrivateCache 1
checkPublicCache 1
maxCacheObjSize 10000000
maxStaleAge 200
qsCache 1
reqCookieCache 1
respCookieCache 1
ignoreReqCacheCtrl 1
ignoreRespCacheCtrl 0
enableCache 0
expireInSeconds 3600
enablePrivateCache 0
privateExpireInSeconds 3600
Синтаксис: задается интерфейсом модуля.
- Enable Module – включает модуль на уровне сервера. Этот параметр можно переопределить на уровне listeners и виртуального хоста.
- Hook L4_BEGINSESSION Priority – приоритет для вызова модуля в сеансе L4 Begin. L4 Begin Session срабатывает при начале соединения TCP/IP.
Теория: L4 – балансировщик обычно оперирует только на уровне L4 TCP/UDP – подключений/сессий. Следовательно, балансировщик перемещает байты так, чтобы байты из одной сессии приходили на один бэкенд. Такому балансировщику неважны особенности приложений, чьими байтами он манипулирует. Это могут быть байты HTTP, Redis, MongoDB или любого иного протокола приложения.
- Hook L4_ENDSESSION Priority – приоритет для вызова модуля в конце сеанса L4. L4 End Session срабатывает, когда соединение TCP / IP заканчивается.
- Hook L4_RECVING Priority – приоритет для вызова модуля L4. Настройка L4 срабатывает, когда соединение TCP / IP получает данные. Он вступит в силу только в том случае, если модуль имеет явно определеную точку входа. Если он не установлен, приоритет будет установлен по умолчанию.
- Hook L4_SENDING Priority – приоритет вызова модуля для передачи данных. Срабатывает, когда соединение TCP / IP отправляет данные.
- Hook HTTP_BEGIN Priority – приоритет модуля для протокола HTTP. Выполняется когда соединение TCP / IP начинает сеанс HTTP.
- Hook RECV_REQ_HEADER Priority – приоритет вызова модуля при получении заголовка HTTP Receive Request. Запускается, когда веб-сервер получает заголовок запроса.
- Hook URI_MAP Priority – приоритет для вызова модуля для обработки http URI Map. Запускается, когда веб-сервер сопоставляет запрос URI с контекстом.
- Hook HTTP_AUTH Priority – приоритет для вызова модуля при HTTP – аутентификации. Запускается после сопоставления ресурсов и перед выполнением обработчика. Это происходит после встроенной аутентификации HTTP и может быть использовано для выполнения дополнительной проверки подлинности.
- Hook RECV_REQ_BODY Priority – приоритет для вызова модуля при обработке тела запроса. Срабатывает, когда веб-сервер получает данные тела запроса.
- Hook RCVD_REQ_BODY Priority – срабатывает, когда веб-сервер заканчивает получать данные тела запроса.
- Hook RECV_RESP_HEADER Priority – срабатывает, когда веб-сервер создает заголовок ответа.
- Hook RECV_RESP_BODY Priority – срабатывает, когда бэкенд веб-сервера получает тело ответа.
- Hook RCVD_RESP_BODY Priority – срабатывает, когда сервер заканчивает получать тело ответа.
- Hook HANDLER_RESTART Priority – перезапуск обработчика срабатывает когда веб-серверу необходимо прервать работу и начать обработку с самого начала, например, когда запрошен внутренний редирект.
- Hook SEND_RESP_HEADER Priority – срабатывает, когда веб-сервер готов отправить заголовок ответа.
- Hook SEND_RESP_BODY Priority – срабатывает, когда веб-сервер отправляет тело ответа.
- Hook HTTP_END Priority – срабатывает, когда HTTP-соединение завершилось.
- Hook MAIN_INITED Priority – основной инициализирующий хук стартует один раз при запуске, после завершения настройки и инициализации сервера контроллером процесса и до обслуживания любых запросов.
- Hook MAIN_PREFORK Priority – запускается основным процессом непосредственно перед запуском нового рабочего процесса при его дублировании (fork(ed)). Он вызывается для каждого worker и может произойти во время запуска системы или при перезапуске worker.
- Hook MAIN_POSTFORK Priority – запускается основным процессом сразу же после запуска нового рабочего процесса (раздвоения).
- Hook WORKER_POSTFORK Priority – срабатывает после создания основным (контроллерным) процессом. Обратите внимание, что соответствующий хук может быть вызван основным процессом либо до, либо после этого вызова.
- Hook WORKER_ATEXIT Priority – запускается рабочим процессом непосредственно перед выходом из обработчика.
- Hook MAIN_ATEXIT Priority – запускается основным процессом (контроллером) непосредственно перед завершением работы модуля.
Это не статья, а серьезная документация. Рекомендуется к прочтению всем, кто хоть раз сталкивался или планирует работать с LiteSpeed сервером и КиберПанелью. Автор – гуру!
Как перегружать php на этом сервере после изменения файла php.ini? Нигде не нашел информации.
Можно перезагрузить весь сервер, либо service lsws restart – как правило, достаточно
Они пишут, что с версии 1.56 перезагрузка сервера не приводит к перезагрузке php.
PHP Detached Mode is new in OpenLiteSpeed v1.5.6.
In previous versions, all PHP processes were attached to OpenLiteSpeed processes. As such, when OpenLiteSpeed restarted, so would the PHP processes. In PHP Detached Mode, the PHP processes will continue running independently, even when OpenLiteSpeed restarts.
When you run in PHP SuEXEC ProcessGroup Mode, PHP process groups are still started by the
openlitespeed process
. When the first request for a specific PHP process group comes in, if PHP is not running it, it will be started by OpenLiteSpeed.pstree
will show that PHP process is child of theopenlitespeed
process. That’s normal. What’s new is that, as of 1.5.6, once theopenlitespeed
process exits, the PHP process won’t quit. It will become independent.Это так. Но в Daemon mode перезагружает. А reboot – универсальное решение.
День добрый. Если я в разделе Access Control вставлю айпи в черный список, то система попросту их заблокирует, или через капчу будет пропускать? (Капча настроена и активирована)
Это абсолютная блокировка (клиент с этого адреса получит DND) еще до того, как “сработает” капча, вернее, до нее даже не дойдет. Капча работает для “подозрительных” ip
А никак нельзя сделать промежуточную блокировку? Указать системе подозрительные айпи для капчи самому (чтобы не она определяла подозрительность)?
если ip в blacklist этого достаточно. Capcha на них не реагирует, блокировка идет ДО капчи. Ну если есть потребность можно изобрести какой нибудь “graylist”, но пока таких запросов не было, вы первый.
Если ip в blacklist, то блокируются все, в том числе хорошие пользователи. Просто на небольшом трафике капча не срабатывает. Меня напрямую долбят прямыми заходами “зашел-вышел”. Из-за этого позиции падают. Но капча не срабатывает, потому-что в течение дня 100-200 заходов. А какие ip я вижу.
Можно тупо заблокировать всю подсеть или ip по одному на сутки – отвалятся. Или:
И далее по тексту…
Вопрос: что делать со swap-файлов в Cyberpanel? я слышал он создает лишнюю нагрузку. Можно ли его удалять? Спасибо.
Доброго дня, он не создает ВООБЩЕ никакой нагрузки. Смысла его удалять нет, от слова совсем. Он используется только если в системе мало оперативной памяти. Кроме того, service lscpd stop “отрубит” cyberpanel на то время пока она не нужна. service lscpd start снова включит
Спасибо за ответ. По безопасности CyberPanel + OLS будет статья?)
Всегда рад помочь. Да, статья будет – безопасность на уровне OS + CyberPanel + OLS.