Сайты и домены
Сайт в WardPane состоит из одного основного домена, необязательного списка псевдонимов, папки с файлами и набора настроек: обработчика, который его запускает, сертификата и защиты. WardPane сам обслуживает все сайты на портах 80 и 443, поэтому настраивать nginx или Apache не нужно.
Основной домен и псевдонимы
У каждого сайта ровно один основной домен, например example.com. Вы задаёте его при создании сайта, и по нему панель называет сайт в интерфейсе, в журналах и в именах папок.
Псевдонимы открывают тот же сайт под другими именами: www.example.com, example.org, example.net и так далее. У сайта может быть до 99 псевдонимов, потому что сертификат Let’s Encrypt вмещает не больше 100 имён, а одно из них занимает основной домен. Добавляйте псевдонимы при создании сайта (в разделе Другие параметры) или позже на вкладке Основное, по одному на строку.
Направьте DNS каждого псевдонима на сервер, как и для основного домена. Когда псевдоним начнёт указывать на сервер, он сам добавится в сертификат сайта (см. SSL-сертификаты).
Псевдонимы со своей папкой
По умолчанию псевдоним показывает основной сайт. Если псевдониму нужно другое содержимое (например, лендинг на example.org), дайте ему свою папку: на вкладке Основное нажмите Создать свою папку рядом с псевдонимом. После этого псевдоним отдаёт файлы из своей папки, а сертификат и настройки у него остаются общие с сайтом.
| Структура | Папка псевдонима со своей папкой |
|---|---|
| Новые сайты (2.0) | /var/www/<owner>/data/www/<alias> |
| Сайты из 1.x | /var/www/<alias>/public |
Названия сайтов
Сайту можно дать отображаемое название, например «Мой магазин». Задайте его в окне создания или на вкладке Основное. Таблица сайтов и страница сайта показывают название, под ним перечислены все домены, а основной домен выделен. Если названия нет, панель показывает основной домен.
Папки и структура
WardPane 2.0 раскладывает сайты так же, как ISPmanager. Каждый сайт принадлежит владельцу, пользователю Linux, которого создаёт WardPane. По умолчанию владелец www-root.
/var/www/www-root/ домашняя папка владельца www-root
/var/www/www-root/data/www/example.com папка сайта
/var/www/www-root/data/logs/ журналы сайтов владельца (example.com-php-error.log, ...)
/var/www/www-root/data/tmp/ временные файлы и сессии PHP
/var/www/www-root/data/.pm2/ PM2 владельца (сайты на Node.js)
У сайта без обработчика или с PHP корень документов совпадает с папкой сайта: загружайте index.html или index.php прямо в /var/www/www-root/data/www/example.com. У сайта на Node.js папка сайта одновременно служит папкой приложения (с package.json), а как файлы отдаётся только её подпапка public/ (см. Node.js).
Точные папки каждого сайта перечислены на вкладке Основное в разделе Папки.
Сайты, созданные до 2.0
Сайты, которые существовали до обновления на 2.0 (включая сайты из Small Web Panel 1.x), сохраняют старую структуру. Обновление ничего не переносит:
/var/www/example.com/public то, что видят посетители
/var/www/example.com/tmp закрыто: временные файлы, сессии PHP
/var/www/example.com/logs закрыто: журналы
/var/www/example.com/data закрыто: базы SQLite и другие закрытые файлы
Отдаётся только public/. Папки tmp/, logs/ и data/ лежат рядом с ней, и из интернета до них не добраться. Сайт на PHP или Node.js с такой структурой работает от своего пользователя Linux, wp_<id>. В одном из следующих выпусков появится действие, которое переносит такие сайты на новую структуру по одному.
Настройки сайта
На странице сайта есть вкладки Основное, Обработчик, SSL и Дополнительно. Эти настройки есть у любого сайта, с каким бы обработчиком он ни работал:
| Настройка | Где | Что делает |
|---|---|---|
| Перенаправлять HTTP на HTTPS | Вкладка SSL | Посетители, открывшие http://, перенаправляются на https://. Включено по умолчанию. |
| Auto SSL | Вкладка SSL | Сертификат Let’s Encrypt выпускается и продлевается автоматически. Включено по умолчанию. |
| Режим SPA | Вкладка «Обработчик», «Без обработчика» | На неизвестные пути отдаётся index.html, для приложений на React, Vue, Angular и подобных. |
| За Cloudflare | Вкладка SSL | Для доменов, проксируемых через Cloudflare (см. Cloudflare). |
Кнопка Сохранить изменения внизу страницы сохраняет все настройки разом. Если попытаться уйти со страницы с несохранёнными изменениями, панель сначала переспросит. Если сессия истекла, пока страница была открыта, после повторного входа форма вернётся вместе с вашими правками.
В таблице Сайты у каждой строки есть меню с действиями для этого сайта и переключатель, который выключает и снова включает сайт. Выключенный сайт не открывается, пока вы его снова не включите; его файлы и настройки остаются как были.
Своя страница 404
Если в корне документов сайта есть 404.html, он используется как страница ошибки для несуществующих путей. Страницы ошибок отправляются с Cache-Control: no-store и без ETag, поэтому браузеры и прокси никогда не хранят устаревшую копию.
Как отдаются статические файлы
Какой бы ни был обработчик, существующие файлы WardPane отправляет сам.
Каждый файл получает сильный ETag, построенный из его размера и времени изменения, как в nginx и Apache. Браузер перепроверяет кэш коротким запросом, а прерванная загрузка продолжается через If-Range. Посетителя, который 60 секунд не забирает данные, сервер отключает, чтобы простаивающие соединения не копились.
Файл, реальный путь которого находится вне папки сайта, не отдаётся, даже через симлинк. Иначе через симлинк можно было бы опубликовать файлы .env или ключи панели. WardPane проверяет уже открытый файл, поэтому подменить его симлинком между проверкой и ответом не получится.
Исходники PHP никогда не отдаются как обычные файлы, даже на статическом сайте. Это касается .php, .phtml, .phar, .inc и подобных файлов, а также резервных копий вроде wp-config.php.bak или config.php~.
Неизвестные домены
Запрос к домену, которого нет ни у одного сайта, или запрос к голому IP-адресу на портах 80 и 443 получает простую страницу 404. Под незнакомым именем WardPane не покажет ни один из ваших сайтов.
Создание сайта
- Направьте A-запись (и AAAA-запись, если вы используете IPv6) домена и каждого псевдонима на сервер. См. DNS.
- В панели откройте Сайты и нажмите Создать сайт.
- Введите домен и, если хотите, название сайта.
- Выберите обработчик: Без обработчика (статические файлы), PHP или Node.js. Его можно сменить позже, см. Обработчики.
- В разделе Другие параметры добавьте псевдонимы и проверьте переключатели (перенаправление на HTTPS и Auto SSL включены по умолчанию).
- Нажмите Создать сайт в окне. Панель создаст папку и начнёт заказывать сертификат.
Для сайта на PHP или Node.js панель затем откроет вкладку Обработчик, где вы закончите настройку.
Загрузка файлов
Загружайте файлы по SFTP (FileZilla, WinSCP, scp, rsync) в папку сайта, указанную на вкладке Основное.
- Входите по SFTP как владелец сайта или как пользователь из группы
www-data. При установкеinstall.shдобавляет вwww-dataпользователя, который запустилsudo, так что этот пользователь может загружать файлы без root. Чтобы новая группа заработала, один раз выйдите и войдите снова. - Папки в
/var/wwwимеют setgid с группойwww-data, поэтому новые файлы получают правильную группу. - Файлы должны быть доступны для чтения (
644для файлов и755для папок: обычные значения SFTP по умолчанию). - Если загружать файлы от root, панель может не суметь их прочитать, а PHP может не суметь в них писать. Для сайтов на PHP после загрузки папок с правом записи от root нажмите Применить заново и исправить права на вкладке «Обработчик» (см. PHP).
Удаление сайта
Откройте сайт, перейдите на вкладку Основное и нажмите Удалить этот сайт… в блоке «Удаление сайта».
После удаления сайт перестаёт открываться, а его сертификат и настройки удаляются. Файлы остаются на диске, если в окне подтверждения не отметить Удалить и файлы сайта. С этой галочкой папка сайта удаляется. Если удалить её не вышло (например, из-за прав доступа), сайт всё равно удаляется, а панель сообщает, что файлы остались.
Импорт в режиме замены и uninstall.sh тоже никогда не удаляют файлы сайтов (см. Экспорт и импорт).