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


13

На даний момент у нас основний веб-сервер є IIS-сервер. Ми реалізуємо сервер Apache замість нього, але все ще потрібно мати доступ до сервера IIS. Як правило, це проста річ, оскільки Apache2 може проксі піддомен на цьому сервері.

Наша проблема, однак, така: ми використовуємо dotnetCharting на сервері IIS, і ліцензування прив’язане до доменного імені. Для того щоб змусити dotnetCharting працювати, потрібно буде придбати ще одну ліцензію.

Моє запитання, чи може Apache2 проксі підкаталог? Наприклад, чи може "www.example.com/subdir" вказати на сервер IIS? Здається, це не повинно бути неможливим, але я не можу знайти рішення для цього.

Відповіді:


19

Звичайно. Але будьте обережні; багато веб-додатків не розроблені так, щоб змінити свій шлях до 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/

Ідеально! Це зробило трюк у моєму тестовому середовищі. Зараз, внутрішньо, ви можете ввести IP-адресу сервера і використовувати наш внутрішній проксі-сервер, щоб дістатися до сервера, і все (крім дотчетчарів) працює чудово, тому я не сподіваюся, що програма вийде з ладу, коли ми проксі-сервер використовує цей метод. Цінується!
SuperJer

1
Мені довелося залишити сліди /від subdir(ось так:) /subdir. В іншому випадку, якщо domain.com/subdirвиникла помилка програми (500). Він би проксі-сервер правильно, якби коса риса була включена ( domain.com/subdir/), але це не той ефект, який я шукав.
OneHoopyFrood

2

Звичайно.

  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


0

остаточний нахил на кінці НЕ є обов'язковим. У мене було таке налаштування

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

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

і верхній рівень працював, але все, що було зроблено, у піддіапазонах під основним не робив.

Я змінив це на це і все спрацювало.

Дякую за дезінформацію !!!

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

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

1
Чому люди спростовують це? Це була саме проблема. Ви повинні або закінчити обидва URL-адреси з косою рисою, або залишити обидва URL-адреси без косої риси .... щонайменше для мене це допомогло, коли справа дойшла до підкаталогів;)
Jannik,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.