IIS 6 - Создать виртуальный каталог, который указывает на приложение IIS на другом сервере? - PullRequest
2 голосов
/ 18 марта 2009

Вот сценарий: На сервере A размещено «основное» приложение (www.example.com). Сервер B размещает приложение поддержки (b.example.com) Они внутренне связаны друг с другом через адрес 192. * и оба доступны через DNS

.

Сервер A имеет несколько виртуальных каталогов, которые отображаются через общие ресурсы UNC: www.example.com/virtual1 -> \ 192.168.1.1 \ virtual1 (на сервере B)

Я бы хотел иметь возможность запустить приложение, которое находится на сервере B (обслуживаемом через IIS), и сделать так, чтобы оно работало на сервере A:

www.example.com / application -> b.example.com/app

Я бы все же хотел иметь доступ к серверу B напрямую

b.example.com / приложение

Есть идеи?

Edit:


Оказывается, приложение за прокси-сервером не позволяло мне динамически изменять его «действие» формы (и при этом оно не позволяло мне изменять что-либо еще). Я был в состоянии отобразить данные с сервера; просто не могу опубликовать: (

Так что оба ответа указали мне правильное направление. Я использовал прокси:

http://code.google.com/p/iisproxy/

Я создал виртуальный каталог на сервере A, который соответствовал нужным каталогам на сервере B - и это сработало! : -)

Ответы [ 2 ]

2 голосов
/ 18 марта 2009

Это должно быть возможно в IIS. Я помню, я должен был сделать это один раз.

Просто создайте виртуальный каталог, используя UNC-путь, указывающий на \\ServerB\SharedAppDirOnB и (при необходимости) «Connect As ...», используя учетные данные, необходимые для сервера B.

Если у вас есть проблемы с «Подключиться как ...», это может быть проблема с правами доступа к папке на сервере B. Попробуйте сделать следующее: добавьте новую учетную запись пользователя на ваш основной сервер, имя и пароль которой совпадают с учетной записью на сервере B. Звучит глупо, но я помню, что это решило мою проблему. Например, вы можете добавить новую учетную запись пользователя на обоих серверах: «IisCommon» с одинаковыми паролями на обоих серверах. Затем убедитесь, что вы предоставили все необходимые права доступа к файлу для папки на сервере B (и разрешение «Поделиться»!). Попробуйте сначала подключиться вручную с помощью проводника Windows, если у вас есть доступ к общему ресурсу.

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


Другим решением будет какой-то обратный прокси . Для этого я использовал сторонний продукт в IIS 6.0: ISAPIrewrite для IIS. Режим «прокси» позволяет вам «пересылать» запросы, сделанные на ваш главный сервер (www.example.com / ...), на ваш другой сервер, но обрабатывать полученные ответы так, как если бы они были обработаны вашим основным «доменным» приложением , Эта функция называется «директива прокси». Он принимает регулярные выражения.

1 голос
/ 18 марта 2009

Поскольку обслуживание виртуального каталога с сервера A через общий ресурс UNC, по-видимому, не работает, вам необходимо обслуживать b.example.com/app с сервера b.

DNS разрешает доменные имена в IP-адреса. Вы запрашиваете одно доменное имя для разрешения двух разных IP-адресов, основанных на разных URL. Это не то, что может сделать IIS или Windows.

Ваши варианты:

  • написать прокси-сервис на сервере A, который передает запросы на сервер B. Если вы хотите, чтобы он был полностью прозрачным (не только для перенаправления), вам также нужно было бы отправить ответный поток. Это не тривиально, но возможно.

  • Поместите страницу сервера B в IFRAME на новую страницу на сервере A.

  • Используйте балансировщик нагрузки перед обоими серверами, который может разделять трафик на основе URL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...