1. 程式人生 > >IIS Tomcat共享80端口

IIS Tomcat共享80端口

api 端口 怎麽辦 microsoft ati 處理 fig cond 輸入

為什麽有這種需求,

原因是這樣的,

公司有一個Java的web項目,在另一臺服務器A上,最近老板一時興起,想把他合並到這臺穩定點的服務器B上,服務器B上使用IIS來寄宿asp.net 網站,

怎麽辦呢,硬著頭皮上吧,在網上找各種解決方案:

  • 解決方案一:isapi_redirect

這個方法按照方法試了N次就是沒搞定,

  • 解決方案二:IIS反向代理

基本邏輯就是請求來到IIS,IIS根據路由規則把請求轉發給Tomcat處理,然後tomcat把響應返回給IIS,

這個方案依然只是IIS獨占端口80,看起來的感覺好像是IIS Tomcat共享80端口

需要安裝一個IIS插件 下載地址如下 https://www.microsoft.com/web/handlers/webpi.ashx/getinstaller/ARRv3_0.appids

在IIS UI上各種配置之後生成的配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="tomcat">
                    <match url="^(.*)" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^www.ahapc.org$" />
                    </conditions>
                    <action type="Rewrite" url="http://localhost:8080/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

^(.*) 這個正則表示匹配所有請求,

www.ahapc.org 表示輸入匹配,就是說如果你的請求包含www.ahapc.org,則滿足了轉發條件

http://localhost:8080/{R:1} 表示滿足上面的條件之後轉發給本地8080去處理,也就是交給本地的Tomcat處理

  • 解決方案三:nginx反向代理

IIS Tomcat共享80端口