1. 程式人生 > >在centos 7.4上使用jexus 部署 asp.net core 專案

在centos 7.4上使用jexus 部署 asp.net core 專案

直接用dotnet xx.dll命令是可以部署asp.net core專案的,包括https也可實現。但是用jexus有以下幾個好處:

1.jexus可以守護dotnet程序

2.同一伺服器,同一埠,可以配置多個網站

3.操作簡單

4.通過反向代理實現負載均衡(不過jexus一般通過埠轉發方式實現asp.net core)

5.檢測攻擊(只是asp.net+mono方式,不適用asp.net core)

用 .net core 2.0作為目標框架做了一個網站,想部署到centos 6.5上,安裝.net core時因為缺少openssl-lib而失敗,而安裝Openssl-lib又要安裝一大堆依賴,最後不得不直接在阿里雲後臺重新更換到centos 7.4

一.安裝.net sdk

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.1.200  //如果希望安裝2.1的最新版,可把後面的.200小版本號去掉

安裝後執行 dotnet --version 可以檢視版本號,就說明成功了     

( 2.1.3以後對應目標框架.net core 2.1,  2.1.200還是屬於.net core 2.0 )2.1目標框架似乎還有bug,改成2.1後在專案中新增controller類的時候會報錯,所以還是使用2.0)

二.釋出並執行.net core 專案

假設我的站點名稱是mysite,建立一個 var/www/mysite 資料夾

在windows上的vs 2017中  publish .net core專案,生成publish資料夾,將資料夾下的檔案傳到var/www/mysite

 進入該資料夾,執行 dotnet mysite.dll ,網站已經執行起來了

(注意 要進入網站目錄後再執行dotnet,不要dotnet /var/www/..../mysite.dll, 否則會出問題,目前發現的是靜態檔案打不開,配置檔案讀不到)

執行  wget 127.0.0.1:5000 可以看到返回成功,說明網頁已經可以本機打開了。

然而,這時候只能通過5000埠被訪問,還不能通過外網訪問,下面我們需要安裝jexus來實現外網80埠訪問

 

三.安裝jexus

 jexus 的原理就是把80埠的請求轉發給5000埠,並且守護dotnet程序。 

 安裝非常簡單:

    curl https://jexus.org/release/x64/install.sh|sudo sh   

    會自動把jexus安裝到 usr/jexus 下,目前最新版本是5.8.3.10,從該版本開始支援.net core 2.1,

   usr/jexus/siteconf 資料夾下用vim 命令 修改default 檔案,新增以下內容

  

port=80                  

root=/ /var/www/mysite/

hosts=*

 

AppHost={

  cmd=dotnet mysite.dll;  

  root=/var/www/mysite/

  port=0;      

}

  執行  /usr/jexus/./jws start 啟動jexus服務  

  以後每次修改配置檔案都要 執行 /usr/jexus/./jws restart 重啟

  在阿里雲的安全規則裡把80埠放行

  現在在你的電腦上輸入阿里雲的外網ip就能開啟網頁了

四. 將jexus設定為開機自啟

 cd /etc/init.d/         
vi jws  
按i編輯模式,貼上下面內容  
#!/bin/bash  

#chkconfig: 2345 80 05
#description:jws  
#  

 

. /etc/rc.d/init.d/functions

case "$1" in

start)  

  echo "Jexus Start.."  
  /usr/jexus/jws start  
  ;;  
stop)  
  echo "Jexus Stop.."  
  /usr/jexus/jws stop  
  ;;  
restart)  
  echo "Jexus Restart"  
  /usr/jexus/jws restart  
  ;;  
status)  
  /usr/jexus/jws status  
  ;;  
*)  
  exit 1  
  ;;  
esac  
exit $RETVAL  
按ESC後,輸入:wq儲存檔案  
把這個指令碼作為“服務”加入  
chmod 766 jws  
chkconfig --add jws  

   注意:剛才加了一個mysite配置檔案,設定埠為80,但是已經有一個default配置檔案埠也是80,這會導致mysite起不來,要將default刪除或者修改埠

至此,jexus已經在centos 7.4搭建成功。 


 

經驗總結:

 1.centos 7以下系統庫的版本太低,會導致安裝失敗。需要升級到centos 7.4

 2. jexus一旦啟動後,會自動啟動dotnet,無需將dotnet加入開機啟動。

 3. jexus只是起到埠轉發作用,核心功能還是由dotnet完成的。

關於如何配置https,開啟gzip,請看另一篇  https://blog.csdn.net/soband_xiang/article/details/80757718