DNS-хостинг общедоступных и веб-приложений на разных хостах

Вот моя установка.

  1. Общедоступный сайт, размещенный на Squarespace.com (www.example-domain.com)
  2. Веб-приложение (AWS EC2/ELB), я хотел бы быть доступным через тот же домен. (мой.пример-домен.com)
  3. Пользовательские страницы профиля доступны как www.example-domain.com/username.

Мой вопрос в том, как я могу настроить DNS для достижения этой цели? Если вы не можете сделать это только через DNS, какие-либо предложения? Проблема, с которой я столкнулся, заключается в том, что если Squarespace.com обрабатывает трафик www.example-domain.com, как я могу заставить его обрабатывать его только частично для определенных URL-адресов. Может быть, я иду об этом в неправильном было все вместе, хотя.


person dre    schedule 20.08.2015    source источник


Ответы (2)


Первые два в порядке. Как вы упомянули, (1) несовместим с (3) для чистой конфигурации DNS, поскольку www из example-domain.com должен быть настроен на одну конечную точку.

Некоторые идеи обходного пути без DNS:

  • Наличие домена Squarespace.com на sqsp.example-domain.com и настройка домена www на собственный веб-сервер, на котором вы настраиваете корень (/) для перенаправления (HTTP 300) на sqsp.example-domain.com. Это будет достаточно прозрачно для пользователя, кроме адреса его браузера.
  • То же самое, но с установкой на / полной страницы HTML iframe, содержащей sqsp.example-domain.com.

Подход iframe является «менее чистым», Google предлагает решения, чтобы сформировать ваше мнение.

РЕДАКТИРОВАТЬ: Как упомянул @mike-ryan, существует также прокси-решение, в котором вы настраиваете свой веб-сервер, чтобы запрашивать другой сервер, чтобы вернуть контент вашему пользователю. Если вы уже используете AWS, разумный способ сделать это — использовать CloudFront: вы можете настроить CloudFront для проксирования одного сервера по одному URL-адресу и прокси-сервера для другого сервера по другому URL-адресу. На самом деле, это, возможно, более быстрый способ реализации, который вам нужен. Конечно, прокси — это еще один «хоп», поэтому он может добавить больше задержки.

person smad    schedule 20.08.2015

Если вы действительно хотите, чтобы контент обслуживался с разных серверов при использовании только одного доменного имени, вам необходимо настроить прокси-сервер для обработки маршрутизации запросов за вас. Я предполагаю, что страницы вашего пользовательского профиля должны обслуживаться из вашего экземпляра EC2.

Nginx будет получать все запросы, а затем решать, следует ли их отправлять в Square Space или в ваше веб-приложение. Запросы будут направляться обратным проксированием в Square Space или в ваше приложение, в зависимости от URL-адреса.

Это похоже на ответ @smad, за исключением того, что все это будет невидимо для пользователей, что, ИМХО, лучше, чем перенаправление пользователя на новое доменное имя.

Примеры шагов:

  • Настройте сервер Nginx, создайте два виртуальных хоста — один для my.example.com и один для www.example.com.
  • Создайте два восходящих потока в конфигурации Nginx — один для Square Space и один для вашего приложения.
  • Настройте виртуальный хост www.example.com для обратного подключения прокси-сервера к Square Space вверх по течению, если URL-адрес «/». В противном случае трафик должен быть проксирован в ваше приложение вверх по течению [0]
  • Настройте виртуальный хост my.example.com для проксирования всего трафика к вашему приложению вверх по течению.

[0] как переключить прокси через nginx на определенный URL?< /а>

person Mike Ryan    schedule 21.08.2015
comment
Что будет с www.example-domain.com/photos/index.html? - person Dusan Bajic; 21.08.2015
comment
Это зависит от того, как настроен Nginx. Вы можете проксировать его на Square Space или на сервер приложений. - person Mike Ryan; 21.08.2015