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

Сервер приложений Java за IIS 7.5 в Windows Server 2008

У меня есть сервер приложений Java (на самом деле GlassFish, но проблема такая же, как и для любого другого сервера приложений, я полагаю), работающий на порту 8080. И у меня IIS 7.5 прослушивает порт 80 в конфигурации по умолчанию.

Я хочу, чтобы люди не набирали порт, потому что это непрофессионально. Поэтому я хочу, чтобы когда кто-то печатал

http://myserver

трафик направляется в IIS. И вот как это уже работает. Но я также хочу, чтобы когда кто-нибудь печатал

http://myserver/java

трафик направляется на порт 8080, и, следовательно, отображается мой экран-заставка GlassFish. Если я развернул приложение на GlassFish в корневом контексте app1, печатая

http://myserver/java/app1 

должен получить доступ к приложению.

Как я могу это сделать? Я попытался добавить некоторые правила с помощью URL Rewrite утилита из пользовательского интерфейса IIS7.5, но она показывает порт после того, как правило переписало URL-адрес, и я хочу избежать этого.

Обновление в 2018 году: ранее Microsoft также создала HttpPlatformHandler.

https://www.iis.net/downloads/microsoft/httpplatformhandler

Поэтому сначала вам следует попробовать HttpPlatformHandler. Это волшебство поддержки Java в Azure.

У вас есть несколько вариантов, но я рекомендую

http://tomcatiis.riaforge.org/

ARR Microsoft - другой подход, но он более тяжелый,

http://blogs.iis.net/mailant/archive/2009/10/22/how-you-can-use-iis7-as-web-front-to-java-app-servers-in-a-3- tier-architecture.aspx

Было бы проще, если бы вы могли использовать субдомен для Java-приложения, например http: //java.myserver/. Затем вы можете сделать что-то вроде следующего, хотя я не знаком со GlassFish, но я предполагаю, что вы можете настроить его для прослушивания определенного IP-адреса, например, с TomCat. Если вы хотите использовать порт 80 для обоих приложений, вам понадобится IIS для прослушивания IP-адреса A и GlassFish для прослушивания IP-адреса B. Затем используйте DNS, чтобы указать myserver на IP A, а java.myserver - на IP B.

Затем выполните следующие действия: http://www.fredmastro.com/post/Restrict-IIS-to-listen-only-on-X-IP-Address-Allowing-you-to-co-run-with-TomCatApache-on-port-80- с-IIS-на-порту-80.aspx

В основном ограничивают IIS прослушиванием только IP A, а не привязкой IP B. Так что GlassFish может привязать его к порту 80.

Откройте командную строку от имени администратора

Покажите, какой IP-адрес IIS прослушивает / выполняет привязку с помощью этой команды.

netsh http show iplisten

Затем ограничьте IIS прослушиванием / привязкой определенного IP-адреса с помощью этой команды

netsh http add iplisten xxx.xxx.x.x

Перезагрузите сервер (вы можете попробовать перезапустить службу http, но это не всегда отображается в службах, и это больно. Перезагрузить проще).