КАК перенести запрос на сервер Apache на сервер IIS без использования перенаправления URL? - PullRequest
3 голосов
/ 06 июня 2009

Мой Apache 2.2.9 работает на Debian Lenny 5.0.1 с 2 сетевыми интерфейсами, один интерфейс имеет общедоступный IP-адрес и имя хоста, другой не настроен. Эта машина обслуживает службы, работающие в стеке LAMP.

Существует компьютер под управлением Windows Server 2008 с пакетом обновления 2 (SP2) под управлением IIS 7, который удовлетворяет наши потребности в ASP.net. Ящик может быть настроен на локальный или общедоступный IP-адрес и также имеет 2 сетевых интерфейса.

Оба сервера работают по протоколу SSL, а Apache общедоступен.

Есть ли способ, когда выполняется запрос, такой как https://foo.com/contentfromiis/, браузер может обслуживать содержимое с сервера IIS без перенаправления и передачи на https://bar.com/iwastransferedhere/. Другими словами, пользователь не должен опыт / любое переключение происходит. Спасибо!

Ответы [ 2 ]

6 голосов
/ 06 июня 2009

Если я правильно понимаю вашу ситуацию, я считаю, что вы можете использовать mod_proxy, чтобы делать то, что вы хотите. По сути, Apache будет действовать как «обратный прокси» для запросов, которые вы на самом деле хотите обслуживать из IIS. Обратите внимание, что обратный прокси-сервер не похож на обычный HTTP-прокси. Из mod_proxy документов:

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

3 голосов
/ 06 июня 2009

Да, что говорит Лоуренс Гонсалвес. Вот простой файл конфигурации, который я взял с моего кеширующего обратного прокси-сервера. Вы должны уметь работать с некоторыми URL-адресами, но я сам этого не делал.

# httpd *reverse proxy caching server* config file for apache httpd 2.2
ServerRoot "C:/Program Files/Apache Group/Apache2"
#must exist, no reason to have anythign in it    
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs"

Listen 127.0.0.1:80
Listen 192.168.1.33:80
ServerAdmin stu@thompson.name
ServerName proxy.server.com

LoadModule auth_module modules/mod_auth.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

### PROXY CONFIGURATION  ###
ProxyRequests Off
ProxyVia On

### VH ###
<VirtualHost 192.168.1.33>
    ProxyPass        /  http://192.168.1.34:80/
    ProxyPassReverse /  http://192.168.1.34:80/
    LogLevel info
</VirtualHost>

### LOGGING CONFIGURATION ###
# error log will not catch proxied content
ErrorLog logs/error.log
LogLevel info
LogFormat "%{Host}i %v %h %l %u %t \"%r\" %>s %b  common
CustomLog logs/access.log common
TypesConfig conf/mime.types
...