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

Двойные серверные технологии на одном компьютере

В настоящее время у меня дома работает IIS на моем веб-сервере, и я использую DNS2Go для предоставления статического имени домена. Мои старые веб-сайты используют ASP с VB Script и базой данных Access через драйверы ODBC, а мои новые веб-сайты используют APACHE, PHP и MySQL. Я хочу иметь возможность обслуживать страницы ASP вместе со страницами PHP, и, насколько мне известно, я могу настроить оба сервера на одном компьютере, если использую разные номера портов.

Как мне обрабатывать запросы на http://domain.myip.org/iis/ с сервером IIS и этими запросами для http://domain.myip.org/apache/ с сервером appache? На самом деле я хотел бы иметь возможность перенаправить запрос на правильный сервер для любого каталога, который мне нравится.

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

Вы достигнете этого, позволив apache2 работать на порту 80, а IIS - на каком-то другом порту, например. 10080. В файле конфигурации apache2 вы используете следующую директиву для прокси через запросы по специальным URL-адресам:

ProxyPass /iis/ http://localhost:10080/
ProxyPassReverse /iis/ http://localhost:10080/

Вам нужен активный mod_proxy-модуль для этого и может использовать переписывает для дополнительных функций, например проксирование только определенных субурлов в IIS.

Ну, первое, что мне приходит в голову - пусть apache живет на 80-м порту и использует mod_rewrite для перенаправления определенных путей на другой порт.

# replace [iis_port#] with something like 8080 or wherever you put it
RewriteRule ^/iis(.*) http://www.domain.myip.org:[iis_port#]$1 [R]

# or the whole host
RewriteCond %HTTP_HOST% www.domain.iis.myip.org
RewriteRule (.*) http://www.domain.iis.myip.org:[iis_port#]$1 [R]

Это довольно простое решение, поэтому кто-нибудь может опубликовать что-нибудь получше.