Перенаправление DNS в каталог веб-сайтов

В настоящее время у нас есть одна запись DNS, которая подключается ко многим веб-приложениям в IIS через DNS Made Easy. например.

myDNSName.example.com/Customer1

myDNSName.example.com/Customer2

Это работало нормально, потому что myDNSName.example.com указывал на одно поле. Теперь мы находимся в ситуации, когда нам нужно распределить эти сайты по нескольким ящикам. Мы справимся с серьезными проблемами, если потребуем от клиента перейти по другой ссылке, так как им нужно будет распространить это на всех своих пользователей.

Есть ли способ настроить сопоставления на уровне DNS для точки myDNSName.example.com/Customer1 на один IP-адрес и myDNSName.example.com/Customer2 на другой IP-адрес? Текущий способ, которым, как я думаю, мы могли бы этого добиться, был бы написанием перенаправления / перезаписи веб-сайта на уровне IIS, но это означает, что IIS становится точкой отказа: если центральный блок, выполняющий перенаправления, отключается, то все падает. Желая убедиться, что у нас есть разделение забот, чтобы ограничить шанс того, что что-то не удастся, с этим справится все.

0
задан 24 May 2017 в 13:00
1 ответ

Нет, DNS не знает http, поэтому вы не можете указать его на сервере на основе URL.

Вы можете указать DNS на балансировщике нагрузки, таком как Nginx, и попросите его передать запрос другим серверам. Если вам нужна избыточность, вы можете изучить две записи A для балансировщика нагрузки и запустить две из них в циклическом циклическом переборе . Теоретически, если один балансировщик нагрузки не работает, можно использовать другой, но я не знаю, будет ли это работать на практике. Клиент всегда может использовать первую запись A, он может использовать их 50/50, может переключаться с первой на вторую и т. Д. Это стоит рассмотреть, так как это самый дешевый вариант, но, опять же, я не пробовал это.

Лучшим вариантом может быть управляемый сервис, такой как AWS ELB (Elastic Load Balancer). Однако вы должны быть в AWS (Amazon Web Services). ELB требуется запись CNAME в DNS, а не запись A.

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

Другой вариант - использовать CloudFlare CDN , который может выполнять балансировку нагрузки для вас на нескольких серверах. Это практичный вариант. Позвоните им и спросите, могут ли они помочь. Скорее всего, вам понадобится один из их платных планов. Вероятно, будет много других провайдеров, которые могут это сделать, я просто знаю, что CloudFlare умеет.

4
ответ дан 4 December 2019 в 11:43

Теги

Похожие вопросы