У меня 4 веб-сервера (Windows Server 2008 R2) и только один общедоступный IP-адрес.
Все они должны быть частью веб-фермы (чтобы запросы к сайту распределялись по всем серверам).
Два вопроса:
1) Возможно ли это и как, или я должен иметь 4 публичных IP-адреса?
2) Могу ли я разместить другой сайт с другим заголовком хоста только на ОДНОМ из серверов и по-прежнему использовать только один общедоступный IP-адрес?
Другой набор слов (и более корпоративный ответ ИМХО): Load Balancer ....
На рынке есть различные бесплатные и открытые исходные коды, а также с закрытым исходным кодом. См. HA Proxy / jetNEXUS. Вы также можете использовать Apache с некоторыми модами proxy-lb.
Мой аргумент против NLB состоит в том, что это грязный взлом, полагающийся на коммутационную матрицу для распределения нагрузки. Хотя он входит в комплект с сервером Windows бесплатно. Apache также ничего не стоит и может добавить гораздо больше функциональности и производительности.
Два ваших лучших варианта, наиболее «родные» для выбранной вами операционной системы:
NLB работает на уровне IP, а ARR работает на уровне HTTP. Если вы прочитали документацию, на которую я ссылался выше, и обнаружите, что ей нелегко следовать, то, возможно, вам следует проконсультироваться с парнем, который работал с этими вещами раньше. Установка балансировки нагрузки сама по себе не совсем сложна, но есть множество мелких вещей, которые могут пойти не так, что может быть нелогично для устранения неполадок.
2) Могу ли я разместить другой сайт с другим заголовком хоста только на ОДНОМ из серверов и по-прежнему использовать только один общедоступный IP-адрес?
Нет. Возможно, вы могли бы что-то сделать, передавая входящий HTTP-запрос на все 4 сервера и настроив для ответа только один сервер. Но это беспорядок, и это идет вразрез со всеми соглашениями о том, как это делается. Либо получите несколько IP-адресов и выделите по одному IP-адресу для каждого веб-сайта, либо все 4 сервера ответят и используют HTTP 1.1 на основе имени. виртуальный хостинг.
1 слово: кластеризация.
Посмотрите на Microsoft «Балансировка сетевой нагрузки» служба.
Ответы на ваши вопросы:
1) Используйте бесплатный балансировщик нагрузки. Я считаю, что у Citrix Netscaler сейчас даже есть бесплатное устройство виртуальной машины (с ограничениями, но, возможно, оно сработает для вас)
2) Да, вы можете использовать заголовок хоста и хост на одном IP-адресе.
Для №1, если вы действительно хотите - вы можете использовать циклический перебор DNS - балансировка нагрузки для бедняков. Просто, но легко. Однако вы не гарантируете равную нагрузку. Я бы установил TTL (время жизни) на 5 минут, при меньшем значении не все кэширующие DNS-провайдеры будут учитывать это по причинам трафика. Таким образом, если сервер выходит из строя, вы можете удалить IP-адрес из DNS, и он ДОЛЖЕН перестать обращаться к этому серверу через 5 минут. Сокращение продолжительности простоя.
Я ненавижу NLB и т. Д. - если настоящий LB (F5 или Netscaler) недоступен по цене - сначала попробуйте бесплатные, как предлагается, или попробуйте DNS, если вам нужно как можно скорее начать работу сегодня, пока вы работаете над добавлением бесплатной нагрузки балансир. Может быть, там есть виртуальная машина.