Как лучше всего отделить веб-сервис от его общедоступных доменных имен?

Один из тех перезагружается еженедельно, другой работает превосходный на большинство людей, и у другого есть возможность принять участие в огромных беспроводных ячеистых топологиях, которые сотрудничают для покрытия всех кампусов, позволяя бесшовную передачу, выравнивание нагрузки, и т.д. и т.д. и т.д.

3
задан 8 March 2012 в 05:13
3 ответа

Мне кажется, что вы пытаетесь создать одно приложение, которое полностью выполняет 2 отдельные вещи. В какой-то момент база кода и функциональность будут совпадать, но я недостаточно хорошо знаю ваше приложение, чтобы помочь вам в этом. У меня есть 2 возможных решения для вас:

  1. Я бы попытался отделить код, связанный с представлением, от ваших контроллеров и моделей, если вы идете в направлении MVC. Это даст вам более четкое разделение бизнес-логики. Один из возможных способов сделать это - поместить ваши представления в 2 отдельных каталога, но затем включить код из общего 3-го каталога. Это дает вам одну общую библиотеку, которая обрабатывает внутреннюю логику, четко разделяя логику представления.

  2. Я бы не стал ' Не бойтесь заголовка HTTP Host. Это требуется для HTTP / 1.1, и все современные браузеры его используют. Черт возьми, виртуальный хостинг полностью зависит от него, и вам будет сложно найти администратора IIS или Apache, который сказал бы вам не использовать виртуальные хосты в производстве. Большой недостаток, конечно, заключается в том, что если вы выполняете проверку заголовка на стороне приложения, вы можете столкнуться с довольно уродливыми операторами if / case. Единственное, что делает установка обратного прокси, - это ищет хост и добавляет еще один заголовок в дополнение к хосту. Таким образом, вы действительно просто добавляете больше заголовков и усложняете свою архитектуру с помощью обратного проксирования.

2
ответ дан 3 December 2019 в 06:41

Во-первых, ваше поле HTTP-хоста должно быть сохранено вашим обратным прокси-сервером, когда он передает запрос. Если это не так, значит, ваш прокси настроен неправильно (и странно!).

Во-вторых, передача дополнительных заголовков и идентификация трафика с их помощью является стандартным и принятым способом определения трафика, обрабатываемого балансировщиком нагрузки. Например, именно так обычно настраиваются балансировщики нагрузки для информирования веб-серверов о том, что трафик поступает через SSL (поскольку SSL не может быть проксирован на этом уровне).

Наконец, я думаю, что вы можете чрезмерно усложнить свою проблему. Насколько часто доменные имена меняются по сравнению с содержимым, стоящим за ними ?! Это не совсем то, как веб должен работать ... Нет ничего плохого в том, что ваше приложение обслуживает контент на основе имени домена в заголовке HTTP Host, это '

1
ответ дан 3 December 2019 в 06:41

Один из способов сделать это - создать небольшой массив облачных балансировщиков нагрузки, каждый нацеленный на в вашем веб-сервисе. Rackspace предоставляет LBaas, и, возможно, другие тоже.

http://www.rackspace.com/cloud/cloud_hosting_products/loadbalancers/

Полное раскрытие информации: я работаю в Rackspace, но не в сфере продаж.

0
ответ дан 3 December 2019 в 06:41

Теги

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