Обратный прокси-сервер одного и того же голого домена на разные хосты

Я управляю DNS своего домена с помощью Cloudflare.

Маркетинговые страницы для размещаются на Netlify.

Основное приложение размещено на Heroku.

Возможно ли с cloudflare + голым доменом (my-example.com), чтобы некоторые пути обслуживались Netlify, а другие пути - Heroku?

Или я вынужден поставить одну из услуг хостинга на поддомен?

Этот может помочь
Dusan Bajic 29.06.2018 09:09

@DusanBajic Хм, 200+ долларов в месяц ...: /

Fellow Stranger 29.06.2018 13:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
1 601
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Как упоминалось в комментарии, это возможно с использованием корпоративного сервиса 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.

  1. Разверните свои статические ресурсы на сайте Netlify в вашем основном личном домене, скажем, my-example.com. В целях тестирования вы можете использовать встроенное имя сайта Netlify (something-something-1234.netlify.com) вместо my-example.com. В приведенном ниже примере перенаправления не зависят от хоста, поэтому будут работать с именем хоста Netlify, Предварительные версии развертывания Netlify И именем рабочего хоста.
  2. Найдите все пути для вашего динамического контента - в этом примере предположим, что это / main / * и / app / *, которые являются динамическими, а ваш бэкэнд размещен на Heroku.
  3. Создайте правила перенаправления прокси, чтобы указать на эти пути. Они могут быть размещены через CDN CloudFlare для защиты вашего API, если вы захотите - проксирование Netlify на сайты с CloudFlare на Heroku отлично работает. Вы также можете выбрать прокси прямо на Heroku, что будет менее сложно. Netlify имеет встроенную защиту от DDoS-атак и все еще находится "перед" вашим приложением Heroku. Вам решать.
  4. Разверните эти правила прокси и проверьте.

Прокси-сервер 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/*, поскольку легче отлаживать загрузку ресурсов, когда пути совпадают. Однако это не требование.

Другие вопросы по теме