.net Core 生产环境 KestrelServer + Shell 实践
来源:互联网 发布:mac 服务器域名怎么看 编辑:程序博客网 时间:2024/05/17 19:16
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
* * * *
cd
/home/baseuser/www/XXX
.XXX.Service && .
/serverstatus
.sh 2>&1
查看相关进程:
或者这是,你可以自己杀掉 程序进程,程序自己会重启。
我这里只运行windwos服务程序的改造程序,若想运行Web应用,直接安装Nginx稍作配置即可。
原文地址:http://www.cnblogs.com/gongzhe/articles/6953556.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
- .net Core 生产环境 KestrelServer + Shell 实践
- asp.net core mvc剖析:KestrelServer
- asp.net core mvc剖析:KestrelServer
- asp.net core mvc剖析:KestrelServer
- asp.net core mvc剖析:KestrelServer
- asp.net core mvc剖析:KestrelServer
- asp.net core mvc剖析:KestrelServer
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
- 结合Jexus + Kestrel 部署 asp.net core 生产环境
- ASP.NET Core默认提供的这个跨平台的服务器KestrelServer
- 聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer
- Mycat生产实践---生产环境部署
- mongodb生产环境最佳实践
- 将ASP.NET Core应用程序部署至生产环境中(CentOS7)
- Jexus 5.8.2 正式发布为Asp.Net Core进入生产环境提供平台支持
- .NET CORE 环境选择
- .NET Core开发:项目实践
- shell 管理SpringBoot 生产环境服务
- 应用软件系统程序员的三个立面
- 下拉菜单
- 6月Unity技术路演华东站报名启动!
- NET Core中使用Irony实现自己的查询语言语法解析器
- Java实现栈的顺序存储结构情况
- .net Core 生产环境 KestrelServer + Shell 实践
- C#码农的大数据之路
- 使用DotNetty编写跨平台网络通信程序
- Asp.Net Core轻量级Aop解决方案:AspectCore
- DDD领域驱动之干货 (一)
- IdentityServer4(OAuth2.0服务)折腾笔记
- EF通用数据层封装类(支持读写分离,一主多从)
- 编写高性能 .NET 代码 第一章:工具介绍 -- Performance Counters(性能计数器)
- ASP.NET 开发者 开始学习ASP.NET Core 2吧