1. 程式人生 > >IIS 反向代理到 Apache、Tomcat

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

URL Rewrite(x64 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 RequestURL 重寫

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