設定Reverse Proxy在Windows、Mac

前言

因為測試的需要,protrator-recorder是在local環境中架設走的是http,但公司的測試環境是在https底下,因此會導致無法將protrator-recorder掛載到測試環境中進行錄製,就開始找方法去解決

錯誤訊息是mixed content,讓我一開始找的方向就是把工具架成https,錄製工具總共要起兩個網站,第一個是webdriver,第二個是recorder本身

第一個想法就是針對recorder本身改成https,原生程式是用node的express+http,只要改成https即可,但是問題來了,webdriver這個工具該怎麼架成https,這部份我沒找到資料(如果有人知道麻煩告訴我),在經過幾番詢問後,kevin給了一個新的方向 reverse proxy

Reverse Proxy

在開始之前,要先複習一下一般的Proxy功能(也就是Forward Proxy)

透過proxy可以直接連線到無法直接連線的網站,還蠻常應用在要連國外的網站只允許自己國家內的ip;或者是在公司內部不允許對外,就必須要透過proxy來做對外的接口

proxy-server

複習完Proxy後,我們要來看看什麼是Reverse Proxy

從字面上來看就是反向,我們連線到一個網站,但是他透過ReverseProxy去連線到背後真實的網站,那對使用者來說其實沒有影響,因為還是可以連到對的網站進行瀏覽

reverse-proxy

架設

本身有兩個開發環境,mac、windows,底下就針對這兩個環境下怎麼架設來說明一下

Mac

在mac環境下可以使用 mitmdump ,照著官方安裝即可

安裝好後,要設定reverse proxy,可以參考這篇,只要在後面加上-r並且給目標https網站即可
那我們瀏覽的時候只要連http://localhost即可

mitmdump -R https://httpbin.org -p 80

Windows

在mac所用的mitmdump這套軟體,很可惜的在windows只剩下UI版本,沒有command mode,那我們所需要reverse proxy就不知道該怎麼設定,因此要改其他方法

還好強大的微軟(XDDD)在IIS已經先埋好這個功能,要在IIS上使用,必須要先安裝兩個套件

系統環境為:(其他環境的操作畫面可能不同!)
Win 10
IIS 10

安裝完畢後,先進行ARR的設定,將Proxy啟用

IIS_ARR

ARR_main

ARR1

ARR2

接著就可以設定URL Rewrite的設定

IIS_url_rewrite

URL_Rewrite_main

URL_Rewrite_rule

URLrewrite1

URLrewrite2

這邊要注意一下,重寫URL後面帶的參數,如果錯誤就無法正確導入
可以使用測試模式,確認一下內容

參考

Microsoft - Reverse Proxy with URL Rewrite v2 and Application Request Routing

Microsoft - Creating Rewrite Rules for the URL Rewrite Module

Reverse Proxy