IIS 7 + Tomcat 7 – как получить доступ к http://localhost:8080/my_app по адресу http://my_app.local

Вопрос или проблема

Кратко:

IIS 7 + Apache Tomcat 7 + isapi_redirect.dll:

У меня развернутое и работающее Tomcat-приложение, доступное по адресу http://localhost:8080/my_app.
Я хотел бы видеть тот же контент по адресу http://my_app.local (а не на сайте по умолчанию Tomcat [который вы можете видеть ниже]).
Я настроил isapi_redirect.dll, так что в данный момент контент my_app.local равен контенту localhost:8080, но этого недостаточно, я хотел бы связать localhost:8080/my_app с my_app.local.
(У меня есть 127.0.0.1 my_app.local в файле hosts, так что я уже могу открыть my_app.local, НО сейчас он показывает только сайт по умолчанию Tomcat (то же самое, что доступно по адресу http://localhost:8080)).

Пожалуйста, прочитайте, что я уже пробовал:


Долгое объяснение:

У меня установлены IIS 7 (7.5.7600.16385) и Apache Tomcat/7.0.22.

  1. Я развернул приложение (давайте назовем его “my_app“) в Tomcat,
    которое теперь доступно по адресу http://localhost:8080/my_app, работает
    нормально. Я добавил новый веб-сайт в панели IIS с путем к
    развернутому my_app Tomcat, который выглядит следующим образом: “c:\Program
    Files\Apache Software Foundation\Tomcat 7.0\webapps\my_app
  2. Я привязал имя хоста my_app.local.
  3. После этого я настроил isapi_redirect.dll по этой (или
    той).
  4. Теперь, когда я открываю http://my_app.local, я вижу сайт по умолчанию Tomcat
    (см. ниже), который совпадает с контентом по адресу http://localhost:8080/!! (Вот в чем проблема!!!)
  5. НО по адресу http://my_app.local я хотел бы видеть тот же контент, что и
    по адресу http://localhost:8080/my_app.

Как я могу это сделать? Большое спасибо заранее!!

мои файлы конфигурации:

введите описание изображения здесь



ОБНОВЛЕНИЕ

Я нашел это: http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html

Случай B: вам нужно скрыть компоненты пути для всех запросов к
приложению. Вот рецепт для случая, когда вы хотите скрыть
первый компонент пути /myapp. Более сложные манипуляции оставлены
на усмотрение читателя. Сначала решение для случая
Apache httpd:

  1. Используйте mod_rewrite, чтобы добавить /myapp ко всем запросам перед их пересылкой на бэкенд:
    […]
  2. Используйте mod_headers, чтобы переписывать любые HTTP-редиректы, которые может вернуть ваше приложение.
    […]
  3. Снова используйте mod_headers, чтобы переписывать пути, содержащиеся в любых куках, которые может установить ваше приложение.
    […]

Если вы используете Microsoft IIS в качестве веб-сервера, плагин ISAPI предоставляет способ выполнить первый шаг с встроенной функцией. Вы
определяете файл сопоставления
для простых изменений префикса, таких как это:

# Добавить контекстный префикс ко всем запросам ...
/=/myapp/
# ... или изменить какой-либо префикс ...
/oldapp/=/myapp/

и затем поместите имя файла в элемент rewrite_rule_file в
реестре или в вашем isapi_redirect.properties файле. В вашем
uriworkermap.properties файле вам все равно нужно сопоставить URL-адреса до их переписывания! […]
Поддержки для Шагов 2 (переписывание ответов редиректа) или 3 (переписывание путей куков) нет.

Я был удивлен, что написано “Поддержки для Шагов 2 (переписывание ответов редиректа) или 3 (переписывание путей куков) нет.“, не знаю, все ли еще так, но тогда что? Я снова застрял?

В зависимости от вашей цели (легкий для запоминания URL?), возможно, вполне нормально просто перенаправить my_app.local -> my_app.local:8080/my_app?

Однако это не скроет целевой сайт.

Создайте новый сайт IIS на my_app.local и позвольте ему перенаправить на ваше приложение :8080/my_app.

http://technet.microsoft.com/en-us/library/cc732930(WS.10).aspx

Можете попробовать это:
http://blogs.iis.net/carlosag/archive/2010/04/01/setting-up-a-reverse-proxy-using-iis-url-rewrite-and-arr.aspx

Это, похоже, то, что вам нужно, переписывание URL и маршрутизация приложений.

Ответ или решение

Чтобы получить доступ к вашему приложению Tomcat по адресу http://my_app.local, а не по адресу http://localhost:8080/my_app, вы можете настроить IIS и использовать URL Rewrite и Application Request Routing (ARR). Ниже приведены шаги, которые помогут вам этого добиться.

Шаги по настройке:

  1. Установите необходимые модули:
    Убедитесь, что у вас установлены следующие компоненты на IIS:

    • URL Rewrite: Скачайте и установите модуль URL Rewrite для IIS.
    • Application Request Routing (ARR): Скачайте и установите ARR. После установки убедитесь, что ARR активирован в IIS.
  2. Создайте новый сайт в IIS:

    • Откройте IIS Manager.
    • Щелкните правой кнопкой по "Sites" и выберите "Add Website…".
    • Укажите имя сайта, выберите физический путь (например, C:\inetpub\my_app), и введите my_app.local в разделе "Host Name".
    • После того как сайт будет создан, проверьте, доступен ли он по адресу http://my_app.local.
  3. Настройте обратный прокси:

    • В IIS Manager выберите созданный сайт.

    • Откройте "URL Rewrite".

    • В правом столбце выберите "Add Rule(s)…" и затем "Blank rule".

    • Назовите правило, например "ReverseProxyToTomcat".

    • В секции "Match URL" укажите следующие параметры:

      • Requested URL: Matches the pattern
      • Using: Regular expressions
      • Pattern: .* (чтобы захватывать все запросы)
    • Перейдите в секцию "Conditions" и добавьте условие с пустым полем (необязательно).

    • В секции "Action" выберите:

      • Action Type: Rewrite
      • Rewrite URL: http://localhost:8080/my_app/{R:0}
      • Убедитесь, что установлены флажки "Append query string" и "Redirect request to another site".
  4. Настройте proxy для проксирования запросов:

    • Перейдите в Application Request Routing Cache в разделе IIS.
    • Найдите "Server Proxy Settings…" и включите прокси.
    • Убедитесь, что выбраны параметры, позволяющие проксировать запросы.
  5. Настройте файл hosts:

    • Проверьте, есть ли строка 127.0.0.1 my_app.local в файле C:\Windows\System32\drivers\etc\hosts. Это позволит вашему компьютеру распознавать my_app.local.
  6. Перезапустите службы:

    • После всех изменений рекомендуется перезапустить IIS для применения настроек.

Важные замечания:

  • Если Web-приложение возвращает перенаправления или устанавливает куки с путями, которые могут не срабатывать должным образом, вам может понадобиться использовать дополнительные настройки для повторной записи заголовков или cookie, однако, как правило, правила, указанные выше, должны сработать для большинства случаев.
  • Проверьте настройки брандмауэра или сетевые ограничения, если после всех настроек http://my_app.local не работает.

Следуя данным шагам, вы сможете настроить доступ к вашему приложению Tomcat по адресу http://my_app.local, вместо выполнения запросов напрямую к Tomcat на порту 8080.

Оцените материал
Добавить комментарий

Капча загружается...