前言 之前的博客我已經在Linux上部署好了.NetCore站點且通過Supervisor對站點進行了進程守護,同時也安裝好了Nginx。Nginx的用處非常大,還是簡單說下,它最大的功能就是方便我們做後續的橫向拓展,當站點的流量越來越大時候可以進行負載均衡,反向代理最大用處也是如此。 反向代理反向 ...
前言
之前的博客我已經在Linux上部署好了.NetCore站點且通過Supervisor對站點進行了進程守護,同時也安裝好了Nginx。
Nginx的用處非常大,還是簡單說下,它最大的功能就是方便我們做後續的橫向拓展,當站點的流量越來越大時候可以進行負載均衡,反向代理最大用處也是如此。
反向代理
反向代理我是這麼理解的,用戶在客戶端輸入指定的url,這個url對應的伺服器實際上不一定是最終處理該請求的伺服器,可以將這個伺服器作為一個中間層,它可以將請求再次分發到指定的應用伺服器上,然後得到反饋後再返回給客戶端。當然對於一些靜態資源的請求或者有動態資源緩存則直接將這些靜態資源或者緩存數據返回給客戶端,從而減輕了應用伺服器的壓力。
正向請求
正向請求相比反向請求部署更簡單,請求的鏈路也更短,對於壓力不大的站點可以採取這種方式,反向代理如果不應用在請求量較大的站點則我個人認為是畫蛇添足,因為它本身的請求鏈路就加長了,某種程度上也降低了請求速度。
配置nginx.conf配置文件
如需nginx進行對站點的反向代理需要對/usr/local/nginx/conf/nginx.conf 進行配置
輸入 vim /usr/local/nginx/conf/nginx.conf 我們找到http節點下的server,如下圖
將location /下麵的內容進行更新,如下圖
將root和index更新為 proxy_pass http://localhost:5000
http://localhost:5000正是我們部署好的站點路徑,我們配置的結果就是將上面監聽到的80埠的請求最終再跳轉到我們剛剛配置的5000埠去。
這裡也對配置文件的一些節點做簡單介紹:
- listen:表示當前的代理伺服器監聽的埠,預設的是監聽80埠。註意,如果配置了多個server,這個listen要配置不一樣。
- server_name:表示監聽到之後需要轉到哪裡去,這時我們直接轉到本地,這時是直接到nginx文件夾內。
- location:表示匹配的路徑,這時配置了/表示所有請求都被匹配到這裡
- root:裡面配置了root這時表示當匹配這個請求的路徑時,將會在這個文件夾內尋找相應的文件,這裡對我們之後的靜態文件伺服很有用。
- index:當沒有指定主頁時,預設會選擇這個指定的文件,它可以有多個,並按順序來載入,如果第一個不存在,則找第二個,依此類推。
在vim編輯器內編輯完畢後轉為命令模式輸入:wq 保存並退出。
檢查nginx配置
輸入如下命令進行檢查
/usr/local/nginx/sbin/nginx -t
出現下圖表示正確
重新載入配置文件並重啟nginx
輸入如下命令重啟nginx
/usr/local/nginx/sbin/nginx -s reload
重新reload可能會出現如下錯誤
nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
解決方式,在Linux控制台輸入下麵命令
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
這時候輸入命令netstat -tunlp
查看Nginx已正常運行,如下圖
嘿嘿,然後在客戶端通過80埠也可以訪問我們之前埠號為5000的.Netcore站點啦