IIS 在Windows Server 實現反向代理
系統版本: Windows Server 2019
IIS版本: IIS 10.0.17763.1
需求描述: .Net Core 3.1寫了一個Asp.Net Web API服務,埠是10000。外部需要通過80埠訪問到這個服務。
解決步驟:
1,安裝IIS
勾選對應的選項,基本上一路Next下去就搞定。
iis安裝完畢後,有一個預設的網站。
我們需要做的,就是將外界對這個預設網站的訪問路徑(http://xxx.xxx.xxx.xxx:80),rewrite成為Asp.Net Web API的路徑(http://xxx.xxx.xxx.xxx:10000)
2,在IIS安裝“URL Rewrite” 以及 “Application Request Routing”
去微軟官網下載 URL Rewrite , 安裝。
安裝後,在IIS除了會出現 URL Rewrite 2.1 模組,還會多出一個 Web Platform Install,我們可以用這個Installer來安裝Application Request Routing
雙擊Web Platform Installer,在搜尋框輸入“arr”,在搜尋結果中選擇Application Request Routing 3.0,安裝。
3,配置IIS Server的Application Request Routing
安裝成功後,在IIS找到Application Request Routing Cache,雙擊,然後點選右側的“Server Proxy Settings”
勾選“Enable proxy”,其餘設定保持預設,點選右側的“Apply”按鈕即可。
4, 配置IIS預設網站的URL Rewrite
雙擊預設網站的URL Rewrite模組,"Add Rule(s)" -> "Blank Rule",然後按如下圖設定:
在配置URL Rewrite之後,預設網站的資料夾會產生一個web.config檔案,只要確定檔案內容如下面所示即可:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="ReverseProxyInboundRule1" stopProcessing="true"> <match url="(.*)" /> <action type="Rewrite" url="http://localhost:10000/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
這樣做完後,外界訪問http://xxx.xxx.xxx.xxx:80,就能訪問到10000埠的Asp.Net Web API服務。
參考: