為什麼有這種需求, 原因是這樣的, 公司有一個Java的web項目,在另一臺伺服器A上,最近老闆一時興起,想把他合併到這台穩定點的伺服器B上,伺服器B上使用IIS來寄宿asp.net 網站, 怎麼辦呢,硬著頭皮上吧,在網上找各種解決方案: 解決方案一:isapi_redirect 這個方法按照方法試 ...
為什麼有這種需求,
原因是這樣的,
公司有一個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反向代理