Веб-сервер на FreeBSD: Nginx или Apache, PHP, TLS и безопасный запуск
Инструкция по веб-серверу на FreeBSD 10 давно устарела. Сама идея не изменилась — ставим HTTP-сервер, подключаем приложение и TLS — но сегодня важнее построить конфигурацию, которую можно нормально обновлять, проверять и восстанавливать.
Nginx или Apache
Nginx удобен как лёгкий веб-сервер и reverse proxy. Apache остаётся хорошим выбором для проектов, которые зависят от его модулей и конфигурационной модели. Не ставьте оба «на всякий случай»: сначала определите, кто слушает 80/443 и какую роль выполняет второй компонент, если он вообще нужен.
Установка через pkg
На обычном сервере проще использовать бинарные пакеты FreeBSD. После установки включите нужную службу через rc-систему и проверьте её запуск после reboot. Не ограничивайтесь ручным стартом daemon в текущей сессии.
PHP лучше запускать отдельно
Для Nginx обычно используют PHP-FPM. Для Apache также имеет смысл отделять PHP-процессы там, где это упрощает управление ресурсами и обновления. Сокет или TCP-порт PHP-FPM не должен быть без необходимости доступен извне.
Сначала минимальный сайт
До установки CMS поднимите простой статический virtual host и убедитесь, что HTTP работает. Затем добавляйте PHP, базу данных, reverse proxy и TLS по одному слою. Такая последовательность сильно упрощает диагностику 403, 404, 502 и проблем с правами.
TLS и сертификаты
Для публичного сайта используйте HTTPS. Сертификат можно получать автоматически через ACME-клиент. Важно не только получить сертификат один раз, но и проверить автоматическое продление и безопасный reload веб-сервера после обновления файлов.
Проверка конфигурации перед reload
Перед применением изменений используйте штатную проверку синтаксиса выбранного веб-сервера. Только после успешного теста выполняйте reload. Это простое правило спасает от ситуации, когда одна опечатка одновременно кладёт все виртуальные хосты.
Firewall и права
Снаружи обычно нужны только 80/443, а SSH лучше ограничить административной сетью или VPN. Каталоги сайта не должны быть без причины доступны на запись пользователю веб-сервера. Отдельно защищайте файлы конфигурации приложения с паролями и ключами.
Логи и резервное копирование
Собирайте access/error logs, настройте rotation и следите за свободным местом. В backup должны входить не только файлы сайта, но и база данных, конфигурация веб-сервера, TLS/ACME-настройки и инструкция восстановления. Проверяйте restore на отдельной машине.
После обновлений
После обновления пакетов проверьте конфигурацию, версии PHP-модулей, доступ к базе и ключевые URL сайта. Для production-сервера полезно сначала обновлять копию или staging, особенно если меняется major-версия PHP или базы данных.
Итог: веб-сервер на FreeBSD лучше собирать как набор простых слоёв: ОС → сеть → веб-сервер → приложение → TLS → мониторинг → backup. Тогда проблема в одном компоненте не превращается в загадку на весь вечер.