1. 程式人生 > >二、netcore跨平臺之 Linux部署nginx代理webapi

二、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 !!!!!!!!!!!!!!!!!!!!!!!!