Webflow для лендинга + Ghost для блога с Caddy Server

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

В современных SaaS приложениях лендинг, блог и основное приложение — это три разных сервиса/продукта со своими технологиями. Для лендинга вы можете использовать Tilda, Webflow или другие веб-конструкторы. Для блога обычно используют автономную CMS, такую как WordPress, Ghost или другие.

Для SEO крайне важно продвигать и индексировать основной домен <your_domain>.com вместо субдомена blog.<your_domain>.com. Чем больше контента будет на <your_domain>.com/blog, тем больше Google будет индексировать его, а значит и главную страницу.

Хостинг блога на blog.<your_domain>.com на Ghost сделать не сложно, достаточно развернуть Ghost блог на машине и прописать A-запись в настройках DNS. Однако, если вы хотите запустить лендинг страницу на Webflow на основном домене <your_domain>.com, а разместить блог на субдиректории <your_domain>.com/blog на Ghost, понадобится использовать reverse-proxy сервер.

Ниже рассмотрим конфиг в Docker Compose и Caddyfile, как такой proxy запустить.

Reverse-proxy сервер
Reverse-proxy сервер

Итак, наши цели:

  1. <your_domain>.com -> Webflow

  2. <your_domain>.com/* -> Webflow

  3. <your_domain>.com/blog -> self hosted Ghost блог

  4. blog.<your_domain>.com -> <your_domain>.com/blog

Возьмем Caddy server в качестве reverse-proxy по следующим причинам:

  • Удобный запуск в docker.

  • Быстрый старт без глубоких знаний devops.

Официальный образ Caddy можно найти тут. При установке убедитесь, что вы сделать mount volumes чтобы Caddy работал корректно.

Дальше мы будет хостить Ghost и Caddy на одной машине в одном docker-compose.yml файле.

version: "3.7"

services:
 caddy:
   image: caddy:2
   restart: unless-stopped
   ports:
     - "80:80"
     - "443:443"
   volumes:
     - $PWD/Caddyfile:/etc/caddy/Caddyfile
     - $PWD/site:/srv
     - caddy_data:/data
     - caddy_config:/config
 ghost:
   image: ghost:3
   environment:
     NODE_ENV: production
     url: https://adapty.io/blog
   volumes:
     - ./blog:/var/lib/ghost/content
volumes:
 caddy_data:
 caddy_config:

На что стоит обратить внимание, это volumes, которые Caddy монтирует к локальной машине. Как я понимаю, в директориях он хранит сертификаты, чтобы не нужно было делать перевыпуск.

Дальше Caddyfile:

blog.adapty.io {
   redir https://adapty.io/blog{uri} #point to subdirectory
}

adapty.io {
   redir /blog /blog/ #trailing slash
   reverse_proxy /blog/* ghost:2368 { #proxy to Ghost container
       header_up Host {host}
   }
   reverse_proxy proxy.webflow.com { #proxy to Webflow
       header_up Host {host}
   }
}

Запускаем docker-compose up -d и все!

По умолчанию Caddy пропускает без изменений все входящие хэдеры на бэкенд, включая хэдер Host, но:

  • Caddy устанавливает или модифицирует X-Forwarded-For.

  • Caddy устанавливает X-Forwarded-Proto.

Больше в официальной документации https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#headers

Наконец, изменим в DNS A-запись для основного домена, чтобы она указывала на машину с Caddy

Меняем DNS
Меняем DNS

И последнее, в Webflow выключаем SSL proxy (Caddy сам выпускает сертификат).

Выключаем в Webflow SSL
Выключаем в Webflow SSL

Если все сделать аккуратно, даунтайм лендинга будет практически нулевой.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Что используете для лендоса?

  • 0,0%Tilda0
  • 0,0%Webflow0
  • 0,0%Wix0
  • 0,0%Самописное решение0
Источник: https://habr.com/ru/post/535236/


Интересные статьи

Интересные статьи

Всем привет. Если вы когда-либо работали с универсальными списками в Битрикс24, то, наверное, в курсе, что страница детального просмотра элемента полностью идентична странице редак...
Мне было необходимо делать 2 раза в сутки бэкап сайта на «1С-Битрикс: Управление сайтом» (файлов и базы mysql) и хранить историю изменений за 90 дней. Сайт расположен на VDS под уп...
Те, кто собираются открывать интернет-магазин, предварительно начитавшись в интернете о важности уникального контента, о фильтрах, накладываемых поисковиками за копирование материалов с других ресурсо...
Если в вашей компании хотя бы два сотрудника, отвечающих за работу со сделками в Битрикс24, рано или поздно возникает вопрос распределения лидов между ними.
1С Битрикс: Управление сайтом (БУС) - CMS №1 в России по версии портала “Рейтинг Рунета” за 2018 год. На рынке c 2003 года. За это время БУС не стоял на месте, обрастал новой функциональностью...