Обработчики
Обработчик определяет, чем работает сайт. В 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 и слушает порт.
Смена обработчика
- Откройте сайт и перейдите на вкладку Обработчик.
- Выберите другой обработчик в разделе «Чем работает сайт».
- Заполните настройки нового обработчика, если они есть, и нажмите Сохранить изменения.
Настройки других обработчиков при смене не теряются. Если вы перевели сайт с 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 на вкладке «Обработчик» есть выбор обработчика и все его настройки, уже заполненные рекомендуемыми значениями.