將請求的網址重寫重定向到其它網址。當80端口被占用無法同時使用兩個Web服務的解決方案,使得IIS和Apache Tomcat 共存
0|1環境
WindowServer 2008 IIS7
Apache 集成在WampServer
Tomcat
測試程序:微擎(PHP) 、 某管理系統(Java)
0|1工具
Application Request Routing(ARR x64)(ARR x32)
0|1需求
服務器只允許開放 80 端口,要求 IIS反向代理到其它服務器,使得 可以通過二級域名訪問Apache/Tomcat服務。
假設一個環境:服務器中開啟了IIS ,一級域名(test.com)可以訪問到IIS的默認站點,但是我在Apache上運行着PHP的程序,所以想要通過二級域名(a.test.com)來訪問到Apache的服務(127.0.0.1:808),通過二級域名(b.test.com)訪問Tomcat(127.0.0.1:8080)
0|1教程
反向代理
1. 在使用反向代理前,我們需要在IIS中安裝 ARR 工具和 URL Rewrite 。
安裝方法很簡單,只需要打開上面兩個工具的鏈接將它們下載下來並安裝就可以了。
2. 不過還有另一個快捷的安裝渠道,微軟官方有一個叫做 Web平台安裝程序 可以直接一鍵安裝。
不過使用 Web平台安裝程序 我遇到一個問題,界面一直在加載中無法進入安裝程序界面。所以你如果無法加載的話,就用第一種方法
安裝完成后打開IIS ,可以看到出現了兩個功能( Application Routing Request
、URL 重寫
)
3. 打開 Application Request Routing
選擇 Server Proxy Settings
4. 勾選 Enable proxy
。點應用后退出
5. 指定一個站點,對它進行URL重寫
如 需要對 a.test.com 進入 URL重寫,就點 a.test.com 站點中的URL重寫功能
6. 添加規則
- 入站規則
- 空白規則
7. 添加配置
- 名稱隨意
- 模式寫
^(.*)
- 添加條件 - 條件輸入
{HTTP_HOST}
模式輸入^a.test.com$
- 操作類型默認重寫
- 重寫URL :
http://127.0.0.1:808/{R:1}
,這個鏈接表示要跳轉的地址,如果你需要跳轉到Tomcat則可以將端口改成8080
8. 保存好后,就可以直接在瀏覽器訪問 a.test.com 了
總結
- 如果需要反向代理Tomcat,只需要將URL重寫地址寫成Tomcat的鏈接就可以了
- 我用WampServer的微擎測試程序時,可以重寫到Apache,但是提交登錄的時候會出現登錄不上,但是在服務器中直接訪問 Apache登錄又可以登錄。原因是
PHP的代碼驗證問題
。這種辦法就修改下源碼文件吧,或者你就不要用IIS的URL重寫了,直接在IIS中配置一個PHP的請求映射,在IIS中運行PHP