
Вкратце:
ИИС 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
)).
Пожалуйста, прочтите то, что я уже попробовал:
Лонгер объяснил:
У меня естьИИС 7(7.5.7600.16385) иApache Tomcat/7.0.22установлен.
- Я развернул приложение (назовем его "
my_app
") в Tomcat, которое теперь доступно по адресуhttp://localhost:8080/my_app
, работает отлично. Я добавил новый веб-сайт в панель IIS с путем к развернутому Tomcatmy_app
, который выглядит так: "c:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\my_app
" - Я привязал имя хоста
my_app.local
. - После этого я настроил
isapi_redirect.dll
какэтот(или что). - Теперь, когда я открываю
http://my_app.local
, я вижу сайт Tomcat по умолчанию (см. ниже), который совпадает с содержимым подhttp://localhost:8080/
!! (Вот в чем проблема!!!) - НО под
http://my_app.local
я хотел бы видеть тот же контент, что и подhttp://localhost:8080/my_app
.
Как мне это сделать? Спасибо большое заранее!!
мои файлы конфигурации:
- isapi_redirect.свойства(Я сделал соединение dir с c:\tomcat, так что это тоже работает :) )
- рабочие.свойства
- uriworkermap.свойства
- rewrites.properties (пусто)
ОБНОВЛЯТЬ
Я тоже нашел это:http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html
Случай B: Вам нужно скрыть компоненты пути для всех запросов, идущих к приложению. Вот рецепт для случая, когда вы хотите скрыть первый компонент пути /myapp. Более сложные манипуляции оставляем в качестве упражнения читателю. Сначала решение для случая Apache httpd:
- Используйте mod_rewrite для добавления /myapp ко всем запросам перед пересылкой на бэкэнд: [...]
- Используйте mod_headers для перезаписи любых HTTP-перенаправлений, которые может возвращать ваше приложение. [...]
- Используйте 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) отсутствует.", я не знаю, правда ли это до сих пор, но что тогда? Я снова застрял?
решение1
В зависимости от вашей цели (легко ли запомнить URL-адрес?), возможно, будет нормально простоперенаправитьмое_приложение.local -> мое_приложение.local:8080/моё_приложение?
Это не было быскрыватьоднако целевой сайт.
Настройте новый сайт IIS на my_app.local и разрешите емуперенаправитьв ваше приложение :8080/my_app.
http://technet.microsoft.com/en-us/library/cc732930(WS.10).aspx
решение2
Можете попробовать это: http://blogs.iis.net/carlosag/archive/2010/04/01/setting-up-a-reverse-proxy-using-iis-url-rewrite-and-arr.aspx
Кажется, это то, что вам нужно: переписывание URL-адресов и маршрутизация приложений.