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

Прокси-сервер Apache VirtualHost с подкаталогом

В настоящее время у нас есть сервер IIS в качестве основного веб-сервера. Мы реализуем вместо него сервер Apache, но по-прежнему необходим доступ к серверу IIS. Как правило, это просто, потому что Apache2 может проксировать субдомен на этот сервер.

Однако наша проблема заключается в следующем: мы используем dotnetCharting на сервере IIS, а лицензирование привязано к имени домена. Для того, чтобы dotnetCharting заработал, необходимо приобрести еще одну лицензию.

У меня вопрос, может ли Apache2 проксировать подкаталог? Например, может ли «www.example.com/subdir» указывать на сервер IIS? Кажется, это не должно быть невозможным, но я не могу найти для этого решения.

Конечно. Но будь осторожен; многие веб-приложения плохо спроектированы для изменения пути URL. Используется ли в настоящее время приложение в подкаталоге?

# You'll probably want this to maintain the host mapping in IIS
ProxyPreserveHost On
# Swap in the IP address or internal host name of your IIS server:
ProxyPass /subdir/ http://192.0.2.100/subdir/

Или, если вы изменяете URL-путь, помня, что у многих приложений будут проблемы с этим из-за абсолютных путей для ресурсов (CSS, javascript, изображения):

ProxyPass /subdir/ http://192.0.2.100/
ProxyPassReverse /subdir/ http://192.0.2.100/

Конечно.

  1. Включить mod_proxy mod_proxy_http
  2. установите следующую инструкцию в своем Apache VHost

    ProxyPass /subdir http://iis.server/.../
    ProxyPassReverse /subdir http://iis.server/.../
    

Обратите внимание, что последний «/» является обязательным.

Чтобы получить больше информации: http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

последняя косая черта в конце НЕ является обязательной. У меня это было так

ProxyPass /dir http://exmpale.com/dir/ 

ProxyPassReverse /dir http://exmpale.com/dir/ 

и верхний уровень работал, но все в подкаталогах ниже основного - нет.

Я поменял его на это, и все заработало.

Спасибо за дезинформацию !!!

ProxyPass /dir http://exmpale.com/dir

ProxyPassReverse /dir http://exmpale.com/dir