CI/CD для WordPress affiliate-сайта: как не ломать лендинги на каждом деплое
Для affiliate-проектов WordPress CI/CD нужен не «для красоты», а чтобы не заливать руками темы, плагины и правки в креативы. Базовая схема: git хранит тему, mu-plugins, конфиги, а в админке остаются только контент и настройки, которые нельзя терять.
Минимальный пайплайн:
— lint PHP и проверка шаблонов до деплоя
— сборка ассетов отдельно от продакшена
— прогон smoke-теста: главная, посадочная, форма, редирект, пиксель
— автоматический бэкап перед выкладкой
— rollback одной командой, если ломается форма или трекинг
Главная ошибка — тащить в репозиторий весь wp-content без фильтра. Так вы ловите конфликты в uploads, мусорные коммиты и случайные перетирания медиатеки. В git обычно держат только код, а медиа, кеши и секреты выносят наружу. Для wp-config лучше использовать переменные окружения и отдельный secrets storage.
Если сайт сеточный, разделяйте окружения: dev для правок, stage для проверки ссылок и трекеров, prod только для трафика. Перед релизом проверьте, что не сломались canonical, noindex, UTM-редиректы и формы лидов. Один пропущенный редирект часто дороже, чем час настройки пайплайна.
Хороший CI/CD для WordPress — это не сложность, а страховка от ручных ошибок. Чем больше лендингов и плагинов, тем короче должен быть путь от коммита до отката.
Для affiliate-проектов WordPress CI/CD нужен не «для красоты», а чтобы не заливать руками темы, плагины и правки в креативы. Базовая схема: git хранит тему, mu-plugins, конфиги, а в админке остаются только контент и настройки, которые нельзя терять.
Минимальный пайплайн:
— lint PHP и проверка шаблонов до деплоя
— сборка ассетов отдельно от продакшена
— прогон smoke-теста: главная, посадочная, форма, редирект, пиксель
— автоматический бэкап перед выкладкой
— rollback одной командой, если ломается форма или трекинг
Главная ошибка — тащить в репозиторий весь wp-content без фильтра. Так вы ловите конфликты в uploads, мусорные коммиты и случайные перетирания медиатеки. В git обычно держат только код, а медиа, кеши и секреты выносят наружу. Для wp-config лучше использовать переменные окружения и отдельный secrets storage.
Если сайт сеточный, разделяйте окружения: dev для правок, stage для проверки ссылок и трекеров, prod только для трафика. Перед релизом проверьте, что не сломались canonical, noindex, UTM-редиректы и формы лидов. Один пропущенный редирект часто дороже, чем час настройки пайплайна.
Хороший CI/CD для WordPress — это не сложность, а страховка от ручных ошибок. Чем больше лендингов и плагинов, тем короче должен быть путь от коммита до отката.
TLS termination: где держать, чтобы не получить лишний геморрой и задержки
Если коротко: TLS надо завершать там, где это проще сопровождать и где меньше точек отказа. Для большинства сайтов это edge/CDN или reverse proxy перед приложением. Так вы выносите сертификаты, HTTP/2, редиректы и базовую защиту из боевого бэкенда.
Разумные варианты:
— CDN/edge: когда нужен WAF, DDoS-фильтр и единая точка входа. Плюс: меньше нагрузки на origin. Минус: зависимость от внешнего слоя.
— Load balancer / reverse proxy: хороший выбор для нескольких приложений и разных доменов.
— Origin: имеет смысл, если трафик маленький, инфраструктура простая, а лишний hop только добавит сложность.
Главное правило: между edge и origin тоже шифруй трафик. Иначе TLS превращается в красивую дверь с открытым коридором внутри. Для origin-подключений используй отдельный сертификат, а не тот же публичный, который светится наружу.
Проверяй три вещи: где заканчивается доверие, кто хранит ключи и где живёт редирект на HTTPS. Если сертификаты лежат на каждом приложении без системы — будет зоопарк из ручных обновлений и случайных простоявших доменов.
Выбор простой: если есть CDN и защита — терминируй на edge; если нужна гибкость внутри кластера — на proxy; если стек маленький — на origin, но только без открытого HTTP между узлами.
Если коротко: TLS надо завершать там, где это проще сопровождать и где меньше точек отказа. Для большинства сайтов это edge/CDN или reverse proxy перед приложением. Так вы выносите сертификаты, HTTP/2, редиректы и базовую защиту из боевого бэкенда.
Разумные варианты:
— CDN/edge: когда нужен WAF, DDoS-фильтр и единая точка входа. Плюс: меньше нагрузки на origin. Минус: зависимость от внешнего слоя.
— Load balancer / reverse proxy: хороший выбор для нескольких приложений и разных доменов.
— Origin: имеет смысл, если трафик маленький, инфраструктура простая, а лишний hop только добавит сложность.
Главное правило: между edge и origin тоже шифруй трафик. Иначе TLS превращается в красивую дверь с открытым коридором внутри. Для origin-подключений используй отдельный сертификат, а не тот же публичный, который светится наружу.
Проверяй три вещи: где заканчивается доверие, кто хранит ключи и где живёт редирект на HTTPS. Если сертификаты лежат на каждом приложении без системы — будет зоопарк из ручных обновлений и случайных простоявших доменов.
Выбор простой: если есть CDN и защита — терминируй на edge; если нужна гибкость внутри кластера — на proxy; если стек маленький — на origin, но только без открытого HTTP между узлами.