標籤:詳細資料 before 配置 微軟 ever task blog 信任 pre
目標,使IIS具有類似與Nginx的功能,將指定網域名稱的請求重新導向到IIS內、IIS外、其他機器上的其他連接埠,並且實現https卸載功能
重點預告:
1.安裝最新版urlrewrite(微軟開發的)外掛程式
2.安裝最新版ARR外掛程式(Application Request Routing)
3.添加重新導向規則
4.流量:外網==>IIS==>指定網站==》UrlRewrite==》ARR==》你的目標程式的url
如果只轉寄到IIS內網站,則不需要ARR。如果要轉寄到其他程式或機器,則必須要ARR
如果不需要https卸載可以直接在全域配置規則。
====================本文分割線====================
1.材料
IIS(Windows專業版內建,如果是server版系統,需要通過功能管理器安裝(無需下載))
urlrewrite外掛程式,https://www.iis.net/downloads/microsoft/url-rewrite
ARR外掛程式(Application Request Routing)https://www.iis.net/downloads/microsoft/application-request-routing。如果只轉寄到IIS內網站,則不需要ARR
上面兩個外掛程式均可以通過WebPlatformInstaller 搜尋安裝
2.安裝外掛程式
安裝好以上兩個外掛程式,重啟IIS管理器,然後點擊當前主機,就會發現兩個新增的表徵圖了。如果沒看到的話,重啟IIS、重啟
3.設定綁定
如果不需要https卸載(即外網https流量轉寄為http流量)可以跳過這步。
使用預設的Default Site或者建立一個網站。並設定綁定如
根據需求設定連接埠和ip。
其中主機名稱設定為*
為什麼要設定為*呢,目標是將要所有流量接入該網站。然後通過ARR/Rewrite將指定的流量再轉寄出去。
如果你理解了這裡的主機名稱的作用,那麼也可以設定指定的一個或多個網域名稱,例如 www.example.com。這樣設定轉寄的時候不會影響其他網站,缺點(也是優點)是,只能接入設定了網域名稱的流量。
注意:https需要先匯入/建立一個自我簽署憑證,並在添加https綁定的時候指定該認證。匯入認證的表徵圖在第一張圖中(伺服器憑證/ServerCertificates)。
4.ARR設定(如果只轉寄到IIS內則不需要ARR)
5.添加轉寄規則。
這裡要注意:
- 規則有兩個地方,一個是IIS管理器中單擊主機名稱,一個是單擊網站。二者的範圍不言自明,一個是全部流量轉寄,一個是只轉寄流入指定網站的流量。
- 要實現https卸載,則必須設定網站中的規則。
這裡使用網站規則,因此需要先點擊網站,然後雙擊開啟UrlRwrite
添加一條空白規則
填上需要的內容
填好了,趕緊儲存下。
6.測試
此時,啟動網站,啟動9000連接埠的程式。瀏覽器輸入 https://a.example.com,如果在本地調試,需要在hosts中佈建網域名轉向到本地才能測試哦。
如果使用自我簽署憑證,可能會提示該網站不安全,因為認證的頒發人和目標人都是你自己,而不是第三方受信任的機構。可以把該認證下載下來,然後安裝到 受信任的憑證授權單位中。再次開啟即可
ARR中還有個功能比較有意思,叫反向 Proxy抓發,可以實現對流入流量的抓包。
如果使用Fiddler來做反向 Proxy監聽上面的8889連接埠,可以參考 http://docs.telerik.com/fiddler/configure-fiddler/tasks/usefiddlerasreverseproxy
也就是在 Fiddler Script中找到 OnBeforeRequest 這個函數,在函數中增加下面一句即可
if (oSession.host.toLowerCase() == "127.0.0.1:8889") oSession.host = "127.0.0.1:9000";//目標伺服器監聽在127.0.0.1:9000,此時可以在Fiddler中看到入站流量包的詳細資料。
IIS反向 Proxy/Rewrite/https卸載配置