二、netcore跨平臺之 Linux部署nginx代理webapi
上一章,我們講了在linux上安裝netcore環境,以及讓netcore在linux上執行。
這一章我們開始講在linux上配置nginx,以及讓nginx反向代理我們的webapi。
什麼nginx???
Nginx("engine x")是一款是由俄羅斯的程式設計師Igor Sysoev所開發高效能的 Web和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。
在高連線併發的情況下,Nginx是Apache伺服器不錯的替代品,而且現在越來越多的公司都開始用nginx,學習nginx是程式設計師必不可少的一部分。
現實用xshell登入到我們的linux系統中。
輸入如下命令
安裝編譯工具和對應的庫檔案,輸入下面的命令,回車即可
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
如下圖示,就表示安裝好了。
接下來,我們正式安裝Nginx,我們這次選擇安裝1.6.2版本。
(1)下載nginx,輸入下面命令,回車即可。
wget http://nginx.org/download/nginx-1.6.2.tar.gz
nginx比較小,下載起來還是蠻快的,如下圖所示,表示下載完成。
(2)解壓nginx壓縮包
tar zxvf nginx-1.6.2.tar.gz
(3)進入到nginx目錄中
cd nginx-1.6.2
(4)編譯和安裝,分別執行下面的命令
./configure --prefix=/usr/local/nginx
make
(5)檢視版本
/usr/local/nginx/sbin/nginx -v
看到下面這個表示成功了
(6)啟動nginx
/usr/local/nginx/sbin/nginx
然後在你的電腦上用瀏覽器訪問即可
注意這裡的預設監聽埠是80,所以輸入ip加上80埠即可
出現如下這種檢視就表示成功了。
接下來就是很關鍵的配置了,其實安裝還是很簡單的。
進入到你的nginx的安裝目錄下
分別輸入如下命令,即可檢視到您的配置資訊
cd /usr/local/nginx/conf
ll
編輯您的nginx.conf檔案,我這裡用vim進行編輯
vim nginx.conf
出現如圖所示:
我們主要看如下圖所示紅色標記的部分
listen:表示當前的代理伺服器監聽的埠,預設的是監聽80埠。注意,如果配置了多個server,這個listen要配置不一樣。
server_name:表示監聽到之後需要轉到哪裡去,這時我們直接轉到本地,這時是直接到nginx資料夾內。
location:表示匹配的路徑,這時配置了/表示所有請求都被匹配到這裡
root:裡面配置了root這時表示當匹配這個請求的路徑時,將會在這個資料夾內尋找相應的檔案,這裡對我們之後的靜態檔案伺服很有用。
index:當沒有指定主頁時,預設會選擇這個指定的檔案,它可以有多個,並按順序來載入,如果第一個不存在,則找第二個,依此類推。
然後我們把上面的location進行了修改
用鍵盤的上下左右鍵把游標移動到如下位置
然後輸入鍵盤的 i(鍵盤的字母i)進入到編輯模式(這裡是給不懂linux說的,懂得人請無視)
然後用鍵盤的退回 ←把這裡的都刪除
然後在輸入 proxy_pass http://localhost:6666;(這裡接上一章已經配置好的netcore webapi)
然後點選鍵盤的ESC退出編輯狀態
然後輸入:wq退出並儲存
:wq
這樣就儲存配置結束了,conf配置其實很複雜,網上有很多根據不同需求進行的配置
大家有興趣可以去看看,我這裡只說入門的部分,額,其實入門都算不上,能用就行,哈哈哈
最後執行下面兩個命令
這裡是檢查配置
/usr/local/nginx/sbin/nginx -t
最後一個就是重啟執行nginx
/usr/local/nginx/sbin/nginx -s reload
哦,最後我們看看效果,額
這裡一定不要忘記啟動我的netcore程式了
輸入命令進入到我們的專案中
cd /root/netcore/
然後輸入啟動程式的命令
dotnet WebApiTest.dll
如下圖所示,就表示啟動成功了
然後,我們用測試工具測試一下我們的介面
如圖所示,我們把以前的6666介面換成了80埠,這裡還是訪問成功了,這就表示我們的nginx代理成功了
到這裡就基本結束了,不過大家一定有個奇怪的地方每次啟動netcore,每次關了你的xshell後就不能訪問了,
這裡建議使用下面的命令,使之成為後臺程序即可
nohup dotnet WebApiTest.dll &
over !!!!!!!!!!!!!!!!!!!!!!!!