Назад | Перейти на главную страницу

Перенаправление HTTP-хоста на основе пользователя на IP-адрес на сервере терминалов Windows

Я только что установил терминальный сервер Windows 2008 R2 с IE9, он предназначен для тестирования. К сожалению, веб-серверы говорят мне, что ВСЕ они имеют локальный apache на своих машинах, и все они отредактировали свой файл hosts с большим количеством записей, указывающих на 127.0.0.1 (loopback).

Это отлично работает на их собственной машине, чтобы указать им на свой собственный apache, чтобы увидеть их результаты по мере их разработки на своих машинах с Windows XP.

Конечно, когда они входят на сервер терминалов, они не смогут получить к ним доступ, файл hosts является машинным, и на сервере терминалов могут одновременно находиться несколько пользователей.

Я пытался придумать способ, которым, когда пользователь A входит на сервер терминалов, загружается набор правил (в файле или месте, которое они могут редактировать), уникальных для них, и когда они вводят test.site1.com, он укажет ему IP-адрес своего компьютера 192.168.1.1 и пользователя B типа test.site1.com он укажет ему IP-адрес компьютера пользователя B 192.168.1.2, это когда оба пользователя одновременно вошли на сервер терминалов (допустим, 192.168.1.10).

В идеале нужно избегать внесения слишком большого количества изменений в свои локальные apache (кроме того, что они должны прослушивать свой фактический IP-адрес в локальной сети, а не только 127.0.0.1, конечно).

Файл Hosts отсутствует, насколько я могу судить ... есть ли умная программа-прокси, которая может это сделать? Тот, который я мог бы установить на самом сервере терминалов, который будет принимать пользовательские файлы конфигурации? Или DNS, как предлагается ниже, отличная идея, опять же, единственная проблема заключается в предоставлении разных IP-адресов для одного и того же имени хоста соответствующему пользователю.

test.site1.com 192.168.1.1 для пользователя A test.site1.com 192.168.1.1 для пользователя B

Это когда и пользователь A, и пользователь B зарегистрированы на одном и том же сервере терминалов.

Умная программа-прокси для преобразования имен в IP-адреса? Почему да, это называется DNS-сервером. Настройте его внутренне (предположительно, он у вас уже есть), добавьте соответствующие записи A и вуаля!

РЕДАКТИРОВАТЬ

Вот идея, хотя, возможно, более сложная, чем вы надеялись: используйте функцию виртуализации IP удаленного рабочего стола W2K8R2 RDS в тандеме с функцией «просмотров» BIND DNS (я думаю, сопоставьте клиентов), чтобы «представить» отдельная запись A для каждого разработчика в зависимости от их виртуального IP-адреса сеанса RDS. Обратите внимание, что я не использовал функцию виртуализации IP удаленного рабочего стола и никогда в своей жизни даже не видел DNS-сервер BIND, но я думаю, что это может сработать для вас.

http://blogs.msdn.com/b/rds/archive/2009/07/09/configuring-remote-desktop-ip-virtualization-part-1.aspx

http://www.oreillynet.com/pub/a/oreilly/networking/news/views_0501.html

Оказалось, мне нужен обратный прокси, у меня есть TMG-сервер под рукой, поэтому я создал пару правил:

Правило публикации веб-сайта HTTP Настройка внутреннего веб-прослушивателя, прослушивающего внутренний интерфейс, с HTTP-аутентификацией с использованием дайджеста и встроенного. Действие Разрешить откуда угодно на локальный хост (просто заполнитель) Имя компьютера или IP-адрес (требуется, если внутреннее имя сайта отличается или не разрешается): Отметьте «Перенаправить исходный заголовок хоста вместо фактического (указанного в поле внутреннего имени сайта) ) Публичное имя (введите все имена тестовых доменов, которые есть на машине этого веб-разработчика) Пути / * будут делать или настраивать по мере необходимости Делегирование аутентификации: без делегата, но клиент может авторизоваться напрямую. Пользователи создают пользователя, указав учетную запись пользователя Windows для веб-разработчик этой машины.

Скопируйте и вставьте, изменив пользователя и исправьте IP-адрес, чтобы он был IP-адресом машины веб-разработчика.

Затем на сервере терминалов отредактируйте файл hosts и укажите для всех этих тестовых доменов IP-адрес сервера TMG. Убедитесь, что все эти URL-адреса также находятся в локальной группе безопасности в IE, чтобы он передавал логин.

Пользователь A на сервере терминалов вводит http://local.website-prototype.net, Terminal Server переходит к TMG, передает их логин, TMG просматривает правила, чтобы найти подходящее правило для пользователя домена, а затем перенаправляет их на IP-адрес их собственной машины для их URL-адресов. Пользователь B на сервере терминалов вводит http://local.website-prototype.netили что-то еще, происходит то же самое: TMG выбирает правило для пользователя B и направляет его на компьютер / ip пользователя B.

Работает приятно, единственными недостатками является то, что когда веб-разработчик хочет добавить еще один URL-адрес, его необходимо добавить в файл хостов терминального сервера (ов) и добавить в конкретное правило пользователя в TMG.

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

В качестве альтернативы мне нужно посмотреть на создание такой же конфигурации в другом, Squid? В идеале что-то, что может позволить мне разделить конфигурацию, чтобы веб-разработчики могли редактировать свои маленькие биты.

Почему бы вам просто не создать файлы одного хоста со всеми тестовыми доменами и IP? Или вы могли бы сделать это более правильно, добавив зону в DNS.

Наконец, они могли просто использовать имя хоста своей машины?