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

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 с путем к развернутому Tomcat my_app, который выглядит так: "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, чтобы переписать пути, содержащиеся в любых файлах cookie, которые может установить ваше приложение. [...]

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

# Add a context prefix to all requests ...
/=/myapp/
# ... or change some prefix ...
/oldapp/=/myapp/

а затем введите имя файла в rewrite_rule_file запись в реестре или ваш isapi_redirect.properties файл. В твоем uriworkermap.properties файла, вам все равно нужно сопоставить URL-адреса, как они есть, перед перезаписью! [...]
Нет поддержки шагов 2 (перезапись ответов перенаправления) или 3 (перезапись путей к файлам cookie).

Я был удивлен, что пишет "Нет поддержки шагов 2 (перезапись ответов перенаправления) или 3 (перезапись путей к файлам cookie).", Я не знаю, правда ли это по-прежнему, но что потом? Я снова застрял?

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

Кажется, это то, что вам нужно: перезапись URL и маршрутизация приложений.

В зависимости от вашей цели (легко запомнить 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