前言
之前的博客我已經在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站點啦