前言
最近,遇到了一個坑,碰了很多壁,才得以解決所以這里記錄一下。也方便大家以后如果遇到的話少踩坑。
是這樣的,之前搞過Nginx服務器轉發Node接口,大體是這樣的。
比如,我在云服務器上使用Node開發了一個/api/getList的接口,并且監聽的端口是6600,那我們使用Nginx就可以這樣來轉發。
- http {
- include mime.types;
- default_type application/octet-stream;
- sendfile on;
- keepalive_timeout 65;
- gzip on;
- upstream springboot {
- server 127.0.0.1:6600 max_fails=2 fail_timeout=5s;
- }
- server {
- listen 80;
- # 主機名或域名
- server_name www.xxx.com;
- location / {
- proxy_pass http://springboot;
- }
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root html;
- }
- }
- }
所以可以就這樣請求:http://www.xxx.com/api/getList/,實際上請求的是云服務器上的http://127.0.0.1:6600/api/getList/。
是的,雖然不是圖形化設置,但是這種命令式的設置我個人覺得更加方便(可能我Nginx用得比較多)。
實戰
我們看完Nginx的設置,那么我們再來看下IIS是怎么轉發的。
我們來分步驟來進行設置。
一、安裝ARR 3.0(Application Request Routing)與配置
安裝鏈接:https://www.iis.net/downloads/microsoft/application-request-routing 。
安裝成功之后,在命令行輸入以下命令,重啟IIS服務器。
- iisreset
在功能頁面你就可以看到Application Request Routing的圖標。
然后,我們雙擊點擊圖標,進入功能設置頁面。進入之后,點擊右邊欄的Server Proxy Settings。
最后,勾選Enable proxy,其他選項保持現狀。然后,點擊應用按鈕,保存就可以了。
二、安裝與配置 URL 重寫(URL Rewrite)
安裝鏈接:https://www.iis.net/downloads/microsoft/url-rewrite 。
安裝成功之后,在IIS功能視圖頁面就可以看到URL重寫按鈕。
雙擊URL重寫按鈕,進入設置頁面。然后,點擊右側邊欄的添加規則按鈕。
選擇空白規則,點擊確定。
進入編輯入站規則頁面。
根據之前的接口,我們可以這樣設置。名稱你可以起一個好記的名字,這里我就起一個6600的名字。
因為我們的接口是/api/getList,以后可能會有/api/getList1、/api/getList2等接口,所以我們這里定的正則表達式模式字符是^(.*?)/?api/(.*)$。
最后我們設置一下需要重寫的URL, 也就是[http://localhost:6600/{R:0}](http://localhost:6600/{R:0}),點擊應用保存即可。
這樣我們就配置完成,看到列表中有我們設置的6600項。
域名www.xxx.com,在IIS已經綁定好了。所以同樣可以這樣請求:http://www.xxx.com/api/getList/,實際上請求的是云服務器上的http://127.0.0.1:6600/api/getList/。
結語
IIS 配置偏圖形化,按理講應該更友好一些,但事實是增添了很多操作步驟,比起Nginx 的幾行配置文件,實際體驗反而復雜許多。所以,我個人更比較傾向于Nginx。
原文鏈接:https://mp.weixin.qq.com/s/-3tFdhiSGJsDiT8dX8Odwg