IIS 反向代理到 Apache、Tomcat
IIS 反向代理可以將請求的網址重寫到其它網址,達到轉發的目的。一般用於一臺伺服器只允許開啟80埠,而80埠又被IIS使用,此時需要在IIS中設定URL重寫,將請求轉發到指定
IP:埠
或網址
環境
WindowServer 2008 IIS7
Apache 整合在WampServer
Tomcat
測試程式:微擎(PHP) 、 某管理系統(Java)
工具
Application Request Routing(ARR x64)(ARR x32)
需求
伺服器只允許開放 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)
教程
反向代理
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