您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何進行.net Core 生產環境下的KestrelServer + Shell 實踐,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
1、背景描述 原項目部署在windwos 服務器下的windwos 服務程序。
2、現已經改版為Linux Centos 下的服務程序。
環境說明:
服務器系統:CentOS 7.0+
相關工具:Xshel、Xftp
服務器軟件軟件:.netcore、
1.安裝 CentOS
測試環境自行安裝,生產環境公司運維團隊準備。
2.安裝 .net Core SDK For Centos7
這里想必網上已經爛大街 了。
參考:https://www.microsoft.com/net/core#linuxredhat
選擇指定的系統:這里選擇Centos
提前使用windwos 開發好的程序。給予.net Core 1.1
下面幾種方法:
方案1:
1.jexus+ KestrelServer
Jexus:Jexus 即 Jexus Web Server,簡稱JWS,是Linux平臺上的一款ASP.NET WEB服務器,是 Linux、Unix、FreeBSD 等非Windows系統架設 ASP.NET WEB 服務器的核心程序,是企業級ASP.NET跨平臺部署的一種可選方案。與其它WEB服務器相比,Jexus不但具有跨平臺ASP.NET服務器這樣的標志性特征,同時還擁有內核級的安全監控、入侵檢測、URL重寫、無文件路由等一系列重要功能和專有特性
KestrelServer :Kestrel是一個基于libuv的跨平臺ASP.NET Core web服務器,libuv是一個跨平臺的異步I/O庫。ASP.NET Core模板項目使用Kestrel作為默認的web服務器.
因為這里是準對發布Windwos 服務的改造程序。所以這里也是一個類似與服務程序的程序。
1、安裝jexus
這里參考官網 https://www.jexus.org/
2.安裝完成我們發布程序,在對應的目錄下創建屬于自己的文件夾。
這里對應相關已經全部安裝好.如圖所示,因為公司對這里要求比較嚴格這里就不貼過多圖。
上傳程序到
3.配置jexus 配置文件。
4.這里懷著慢慢的激情運行Jexus的命令。查看進程結果沒有任何反應.
a) 這里的問題就不說了,因為Jexus需要root權限,因為公司分配的權限沒有root權限。對root權限限制比較嚴重。這里也和Jexus 的大牛宇內流云 溝通最終因為權限問題放棄使用 Jexus。(因為Jexus這里必須使用Root權限)。
方案2:
KestrelServer + Linux Shell編程模式
1.Shell腳本:
1.
2.Start.sh 程序將要啟動調用 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 程序將要停止時調用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系統定時器定時檢查腳本。
#!/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 配置系統定時器:crontab -e
1 | *
/1
* * * *
cd
/home/baseuser/www/XXX
.XXX.Service && .
/serverstatus
.sh 2>&1
|
查看相關進程:
或者這是,你可以自己殺掉 程序進程,程序自己會重啟。
我這里只運行windwos服務程序的改造程序,若想運行Web應用,直接安裝Nginx稍作配置即可。
關于如何進行.net Core 生產環境下的KestrelServer + Shell 實踐就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。