IIS反向代理/Rewrite/https卸載配置


目標,使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 Routinghttps://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中還有個功能比較有意思,叫反向代理抓發,可以實現對流入流量的抓包。

 

如果使用Fiddler來做反向代理監聽上面的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中看到入站流量包的詳細信息。

注意:開啟反向代理之后,會在全局UrlRewrite中添加一條所有請求重寫到上述代理的規則,如果只需要過濾指定的請求,可以編輯該規則添加條件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM