Обработчики

Обработчик определяет, чем работает сайт. В WardPane их три: Без обработчика для статических файлов, PHP и Node.js. Вы выбираете его при создании сайта и можете поменять в любое время на вкладке Обработчик сайта.

Три обработчика

В режиме Без обработчика (статический хостинг) HTML, CSS, скрипты, картинки и другие файлы отдаются как есть. Ваш код на сервере не выполняется, поэтому вариант самый быстрый и атаковать в нём почти нечего. Подходит для обычных сайтов, лендингов и сборок React, Vue, Angular, Astro, Hugo и похожих инструментов. Если маршруты приложения обрабатываются в браузере, включите Режим SPA, и на неизвестные пути будет отдаваться index.html.

Обработчик PHP выполняет файлы .php, так что он нужен для WordPress, Laravel, Symfony и других сайтов на PHP. У каждого PHP-сайта свой php-fpm и свой пользователь Linux. Из его песочницы не видно ни других сайтов, ни панели. Подробнее на странице PHP.

Node.js запускает ваше приложение (Express, Next.js, Nuxt, Fastify и другие) и передаёт ему запросы, а файлы из public/ при этом могут отдаваться напрямую. Приложения работают под PM2, по одному демону PM2 на владельца. См. Node.js.

Сравнение

Без обработчика PHP Node.js
Типичное применение Статические сайты, SPA, документация WordPress, Laravel, классические PHP-приложения Express, Next.js, Nuxt, API, WebSocket
Что отдаётся Файлы из корня сайта Файлы плюс скрипты .php Файлы из public/, всё остальное идёт в приложение
Выполняет код на сервере Нет Да, отдельный php-fpm для сайта Да, ваше приложение под PM2
От чьего имени работает Отдаётся панелью Владелец сайта (сайты из 1.x: wp_<id>) Владелец сайта
Нужна среда выполнения Нет PHP, установленный на сервере Мажорная версия Node.js (от 20 до 26), скачивается по требованию
.htaccess Только если был включён до 2.0 Да, по желанию Нет, приложение само обрабатывает свои маршруты
Ограничения Не нужны Память на запрос, воркеры, CPU Память, CPU
Запрет исходящих соединений Неприменимо По желанию По желанию
Защита (Bot Fight, гео, лимиты запросов…) Да Да, до того как PHP увидит запрос Да, до того как приложение увидит запрос

Какой бы ни был обработчик, сначала выполняются проверки защиты сайта. Заблокированный запрос никогда не доходит до PHP или вашего приложения.

Выбор обработчика

  • Сайту из одних файлов подходит Без обработчика, даже если эти файлы собрал инструмент на JavaScript. Статическому хостингу не нужна среда выполнения, и ваш код на сервере не запускается.
  • Приложению на PHP и любому сайту с файлами .php нужен PHP. Сначала установите PHP на сервер (sudo ./install.sh --php); какие версии уже есть, видно на странице Среды выполнения.
  • Node.js выбирайте, когда сайт сам работает как сервер на Node.js и слушает порт.

Смена обработчика

  1. Откройте сайт и перейдите на вкладку Обработчик.
  2. Выберите другой обработчик в разделе «Чем работает сайт».
  3. Заполните настройки нового обработчика, если они есть, и нажмите Сохранить изменения.

Настройки других обработчиков при смене не теряются. Если вы перевели сайт с PHP на Node.js, а потом обратно на PHP, его настройки PHP (версия, папки с правом записи, ограничения) никуда не денутся. То же касается настроек Node.js, включая назначенный порт и переменные окружения.

Что меняется при смене:

  • При переходе на PHP панель запускает для сайта php-fpm, и файлы .php, которые раньше отклонялись, начинают выполняться.
  • При переходе на Node.js панель назначает порт, скачивает нужную версию Node.js, если её нет, и запускает приложение в PM2. Корень сайта переносится в public/ внутри папки сайта.
  • При переходе на «Без обработчика» PHP или приложение Node.js этого сайта останавливается. Файлы отдаются как раньше, а исходники .php как простой текст не отдаются никогда.

Обработка .htaccess относится к обработчику PHP. Если у статического сайта она была включена до 2.0, она остаётся (параметр остаётся видимым в разделе Дополнительно); новые статические сайты файлы .htaccess не обрабатывают.

Простой и экспертный режим

Простой и экспертный режимы появятся в версии 2.3. В 2.0 на вкладке «Обработчик» есть выбор обработчика и все его настройки, уже заполненные рекомендуемыми значениями.