摘要
本文介紹IIS10通過安裝ARR 3.0(Application Request Routing),配置Application Request Routing Cache開啟代理,配置URL Rewrite創建匹配規則,實現前端跨域請求API功能。即訪問http://localhost:8001/api/list,實際會被代理到http://localhost:8002/api/list 。
## 原请求
http://localhost:8001/api/list
## 实际代理到后端服务
http://localhost:8002/api/list
## 原请求
http://localhost:8001/api/list
## 实际代理到后端服务
http://localhost:8002/api/list
服務器環境
IIS 前端服務器
IIS服務器創建一個端口為8001的網站,目錄下有一個test.html,請求接口地址為“ /api/get.json ” 。訪問地址為:http://localhost:8001/test.html 。
Node.js 後端服務器
使用http-server開啟一個端口為8002的服務器,” api “目錄下一個JSON文件get.json,訪問地址為:http://localhost:8002/api/get.json 。
一. 安裝ARR 3.0(Application Request Routing)
- 通過Web平台安裝程序(Web Platform Installer):直接點擊“ Install this extension ”按鈕即可。
- 下載包安裝:x86 installer / x64 installer。
# 重启 IIS
iisreset
# 重启 IIS
iisreset
二.配置Application Request Routing Cache
1、安裝成功後,IIS管理裡會看到多出一個圖標“ Application Request Routing Cache “,點擊進去進行配置。
2、進去後,點擊Server Proxy Settings。
3、在設置頁面,勾選Enable proxy, 。
4、應用保存剛才設置。



三. 配置URL 重寫(URL Rewrite)
1、進入IIS 網站管理,可以看到多出一個URL 重寫(URL Rewrite) 的圖標。
2、進入URL重寫(URL Rewrite),點擊“ 添加規則 ”。
3、進入添加規則彈窗,點擊“ 空白規則 ”。
4、配置規則:
# 模式(T)
^(.*?)/?api/(.*)$
# 重写 URL(L)
http://localhost:8002/{R:0}
即8001端口的前端服務器,訪問路徑中包括/api/的請求,會被代理到8002端口的後端服務器。
5、應用保存配置。



# 模式(T)
^(.*?)/?api/(.*)$
# 重写 URL(L)
http://localhost:8002/{R:0}

即8001端口的前端服務器,訪問路徑中包括/api/的請求,會被代理到8002端口的後端服務器。
測試
訪問前端服務器:http://localhost:8001/test.html ,可以看到接口訪問地址(http://localhost:8001/api/get.json)狀態碼是502。
這是因為還沒開啟後端服務器,讓我們開啟再試一下。
現在刷新前端頁面(http://localhost:8001/test.html),可以看到接口請求已經成功。
再回到後端服務器,查看日誌,可以看到剛才有一條GET 請求記錄,證明剛才8001 端口服務器的請求,已經成功代理到8002 端口服務器的了。




留言
張貼留言