IIS反向代理解決Web前端跨域

1. IIS反向代理

1.1 IIS7反向代理解決跨域問題

IIS的版本必須是IIS7及其以上,否則沒有反向代理功能;按照以下步驟來配置IIS,以實現反向代理;

1.2 配置步驟

1. 下載安裝ARR(Application Request Routing),http://www.iis.net/downloads/microsoft/application-request-routing

 

2. 如上圖所示,點擊紅框選項;

 

3. 如上圖所示,點擊紅框選項

 

4. 如上圖所示,選中複選框;

 

5. 選擇URL重寫

 

6. 添加規則

 

7. 創建一個空白規則

 

8. "匹配URL"中設置模式,"^nginx/(.*)"意思是將捕獲匹配的URL,不匹配的URL不會進入這個規則中

 

9. 添加一個條件

 

10. 添加的條件輸入爲"{HTTP_HOST}",意思是請求的主機名;模式格式爲:“^綁定的域名$”,後面會將這個綁定的域名按照後面的規則操作;如果網站主機端口號不是默認的80端口,則需要在後面添加上端口號,如"^localhost:8080$"

 

11. 後面跟上{R:1}”意思是把請求的域名後面的參數也帶過來;這就是我們真正要訪問的地址,這裏用來替換上一步中格式綁定的域名;

 

12. 點擊"應用"應用該規則

  

13. 點擊重新啓動,使配置信息生效,此後就可以通過該IIS反向代理到域外的網址;

 

1.3 示例

這裏提供一段示例截圖,來解釋如何使用這個反向代理的代理服務器

 

訪問的地址根路徑必須是與"匹配URL"中的"模式"匹配,如我們這個說明中配置的是"^nginx/(.*)",因此在訪問域外地址的時候地址必須是"/nginx/api/wec/GetDeviceStatusList"(這裏不包括網址前的協議,域名和端口)

 

2. Nginx反向代理

2.1 nginx反向代理解決跨域問題

本文檔中使用的版本是nginx-1.13.8nginx在windows中的路徑中不能有中文路徑名,路徑名中不能有空格;

 

本文檔的nginx的"工作目錄"就是上圖所示目錄中

2.2 配置步驟

 

1. 打開控制檯窗口,並切換到工作目錄,執行"nginx -c ./conf/nginx.conf"後,就如上圖上圖所示,阻塞到這裏,就說明啓動成功了;

 

2. 在瀏覽器中輸入"localhost",如果出現上圖所示頁面,說明nginx已經在正常工作了;

 

3. 打開配置文件"./conf/nginx.conf",如上圖所示

 

4. 在配置文件中添加上圖所示相關配置,就可以成功進行反向代理了;

2.3 nginx使用注意事項

1. nginx正在運行,配置文件被修改了,只需要執行命令"nginx -s reload"即可讓nginx重新加載配置信息了;

2. nginx必須通過命令"nginx -s stop"或者"nginx -s quit"結束,否則進程不會退出;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章