Я управляю DNS своего домена с помощью Cloudflare.
Маркетинговые страницы для размещаются на Netlify.
Основное приложение размещено на Heroku.
Возможно ли с cloudflare + голым доменом (my-example.com), чтобы некоторые пути обслуживались Netlify, а другие пути - Heroku?
Или я вынужден поставить одну из услуг хостинга на поддомен?
@DusanBajic Хм, 200+ долларов в месяц ...: /





Как упоминалось в комментарии, это возможно с использованием корпоративного сервиса cloudflare.
Но вы можете сделать это с помощью простой настройки обратного прокси-сервера nginx.
DNS разрешает обратный прокси-сервер nginx и в зависимости от пути вызывает соответствующие восходящие потоки.
eg. example.com, and then direct queries for /path1 to 100.100.100.100 and for /path2 to 200.200.200.200
Отказ от ответственности: я работаю на Netlify.
Вы определенно можете сделать это, не имея собственного сервера и не доплачивая ничего.
Поскольку у Netlify уже есть CDN, неоптимально ставить CDN cloudflare (активируется с помощью «оранжевого облака» в их настройках) перед Netlify. По нашим наблюдениям, это не только неэффективно, но и нарушает работу Netlify атомные развертывания и откаты, а также замедляет обслуживание страниц. Это может сработать, но не рекомендуется. Однако DNS CloudFlare довольно производительный и может использоваться без их CDN (отключите «оранжевое облако»). Их DNS хорошо работает с контентом, размещенным на CDN Netlify.
Вот как это сделать с помощью Netlify.
Прокси-сервер Netlify (технически обратное проксирование) может подключаться к любому бэкэнду, который вам нужен, и НЕ показывает URL-адрес посетителю - он смотрит на них (строка URL-адреса в браузере, HTTPS-соединение), как если бы они подключены к моему примеру. com все время, но контент возвращается из вашего бэкэнда (включая коды состояния HTTP. Этот ответ кэшируется в CDN Netlify, если это указано в ваших директивах HTTP-заголовка Cache-Control:, которые отправляет приложение Heroku. Обратите внимание, что CloudFlare ИЗМЕНИТСЯ ваш заголовок Cache-Control в если вы установите его для контента, на который они прокси-серверы! Netlify не будет.)
Вот обычная установка:
/main/* https://yourapp.herokuapp.com/main/:splat 200!
/app/* https://yourapp.herokuapp.com/main/:splat 200!
Обратите внимание, что если вы развертываете ЛЮБЫЕ активы в / main или / app в Netlify, они будут проигнорированы из-за конечного ! в этих правилах. См. https://www.netlify.com/docs/redirects/#note-on-shadowing для получения дополнительной информации о том, как это работает, и об альтернативах (TL; DR: развертывание некоторых вещей, таких как /main/logo.png на Netlify, но ничего, что Heroku должен обслуживать, вместо развертывания ВСЕГО необходимого контента для / main / * на Heroku).
Обратите внимание, что я предлагаю использовать идентичные пути на Netlify и Heroku (/main/*), а не проксировать на /somethingelse/*, поскольку легче отлаживать загрузку ресурсов, когда пути совпадают. Однако это не требование.