Как стать автором
Обновить
0
Adapty
Сервис для аналитики и роста мобильных подписок

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

Время на прочтение2 мин
Количество просмотров3.5K
Автор оригинала: Vitaly Davydov

В современных 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

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

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Что используете для лендоса?
7.14% Tilda1
7.14% Webflow1
0% Wix0
85.71% Самописное решение12
Проголосовали 14 пользователей. Воздержались 9 пользователей.
Теги:
Хабы:
+3
Комментарии0

Публикации

Информация

Сайт
adapty.io
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
США

Истории