溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行.net Core 生產(chǎn)環(huán)境下的KestrelServer?+ Shell 實(shí)踐

發(fā)布時(shí)間:2021-12-23 17:37:08 來源:億速云 閱讀:99 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)如何進(jìn)行.net Core 生產(chǎn)環(huán)境下的KestrelServer + Shell 實(shí)踐,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

1、背景描述 原項(xiàng)目部署在windwos 服務(wù)器下的windwos 服務(wù)程序。 

2、現(xiàn)已經(jīng)改版為Linux Centos 下的服務(wù)程序。 

環(huán)境說明:

服務(wù)器系統(tǒng):CentOS 7.0+

相關(guān)工具:Xshel、Xftp

服務(wù)器軟件軟件:.netcore、

1.安裝 CentOS

測試環(huán)境自行安裝,生產(chǎn)環(huán)境公司運(yùn)維團(tuán)隊(duì)準(zhǔn)備。

2.安裝 .net Core SDK For Centos7

這里想必網(wǎng)上已經(jīng)爛大街 了。

參考:https://www.microsoft.com/net/core#linuxredhat

選擇指定的系統(tǒng):這里選擇Centos

提前使用windwos 開發(fā)好的程序。給予.net Core 1.1

下面幾種方法:

方案1:

1.jexus+ KestrelServer 

Jexus:Jexus 即 Jexus Web Server,簡稱JWS,是Linux平臺上的一款A(yù)SP.NET WEB服務(wù)器,是 Linux、Unix、FreeBSD 等非Windows系統(tǒng)架設(shè) ASP.NET WEB 服務(wù)器的核心程序,是企業(yè)級ASP.NET跨平臺部署的一種可選方案。與其它WEB服務(wù)器相比,Jexus不但具有跨平臺ASP.NET服務(wù)器這樣的標(biāo)志性特征,同時(shí)還擁有內(nèi)核級的安全監(jiān)控、入侵檢測、URL重寫、無文件路由等一系列重要功能和專有特性

KestrelServer :Kestrel是一個(gè)基于libuv的跨平臺ASP.NET Core web服務(wù)器,libuv是一個(gè)跨平臺的異步I/O庫。ASP.NET Core模板項(xiàng)目使用Kestrel作為默認(rèn)的web服務(wù)器. 

因?yàn)檫@里是準(zhǔn)對發(fā)布Windwos 服務(wù)的改造程序。所以這里也是一個(gè)類似與服務(wù)程序的程序。

1、安裝jexus

 這里參考官網(wǎng) https://www.jexus.org/ 

2.安裝完成我們發(fā)布程序,在對應(yīng)的目錄下創(chuàng)建屬于自己的文件夾。

如何進(jìn)行.net Core 生產(chǎn)環(huán)境下的KestrelServer?+ Shell 實(shí)踐

這里對應(yīng)相關(guān)已經(jīng)全部安裝好.如圖所示,因?yàn)楣緦@里要求比較嚴(yán)格這里就不貼過多圖。

 上傳程序到

如何進(jìn)行.net Core 生產(chǎn)環(huán)境下的KestrelServer?+ Shell 實(shí)踐

3.配置jexus 配置文件。

4.這里懷著慢慢的激情運(yùn)行Jexus的命令。查看進(jìn)程結(jié)果沒有任何反應(yīng).

a) 這里的問題就不說了,因?yàn)镴exus需要root權(quán)限,因?yàn)楣痉峙涞臋?quán)限沒有root權(quán)限。對root權(quán)限限制比較嚴(yán)重。這里也和Jexus 的大牛宇內(nèi)流云 溝通最終因?yàn)闄?quán)限問題放棄使用 Jexus。(因?yàn)镴exus這里必須使用Root權(quán)限)。

方案2: 

  1. KestrelServer + Linux Shell編程模式

1.Shell腳本: 

1.如何進(jìn)行.net Core 生產(chǎn)環(huán)境下的KestrelServer?+ Shell 實(shí)踐

2.Start.sh  程序?qū)⒁獑诱{(diào)用 Start.sh腳本:

#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

export PATH

source /home/baseuser/.bash_profile

nohup dotnet /home/baseuser/www/XX.XX.Service/XX.XX.Service.dll >nohup.out 2>&1 &

2.Stop.sh 程序?qū)⒁V箷r(shí)調(diào)用Stop.sh 


#!/bin/bash    
echo      "begain kill server !"    
ps      -ef|      grep      XXX|      grep      -      v      "grep"      |      awk      '{print "kill "$2}'      |sh    
sleep      2    
processnum=`      ps      -ef|      grep      XXX|      grep      -      v      "grep"      |      wc      -l`    
if      [ $processnum -      eq      0 ]    
          then    
          echo      "kill Success !"    
else    
          echo      "kill Failed !"    
exit    
Fi    

3.ServerStatus.sh Linux系統(tǒng)定時(shí)器定時(shí)檢查腳本。


#!/bin/sh    
PATH=      /usr/local/sbin      :      /usr/local/bin      :      /usr/sbin      :      /usr/bin      :      /sbin      :      /bin    
export      PATH    
source      /home/baseuser/      .bash_profile    
echo      'look for server statu...'      >>server_status.log    
processnum=`      ps      -ef|      grep      XXX|      grep      dotnet|      wc      -l`    
echo      $processnum >>server_status.log    
if      [ $processnum -      eq      0 ]    
          then    
          echo      'server is shut down ...begain start server...'      >>server_status.log    
          echo      "`source /home/baseuser/www/XXX.XXX.Service/start.sh`"    
          echo      'server is starting'      >>server_status.log    
else    
          echo      'server is normal...'      >>server_status.log    
exit    
fi    

4 配置系統(tǒng)定時(shí)器:crontab -e

1
*      /1      * * * *       cd      /home/baseuser/www/XXX      .XXX.Service && .      /serverstatus      .sh 2>&1    

查看相關(guān)進(jìn)程:

如何進(jìn)行.net Core 生產(chǎn)環(huán)境下的KestrelServer?+ Shell 實(shí)踐

或者這是,你可以自己殺掉 程序進(jìn)程,程序自己會重啟。 

我這里只運(yùn)行windwos服務(wù)程序的改造程序,若想運(yùn)行Web應(yīng)用,直接安裝Nginx稍作配置即可。

關(guān)于如何進(jìn)行.net Core 生產(chǎn)環(huán)境下的KestrelServer + Shell 實(shí)踐就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI