Centos部署使用Jexus承载asp.net core2 web应用

一,首先安装本地开发项目用的的 core对应版本运行时:

https://www.microsoft.com/net/download/linux-package-manager/centos/runtime-2.0.5

    首先在部署服务器注册微软签名秘钥, 只需要执行一次

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

 

然后安装对应的net core 运行时
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-runtime-2.0.5

 



2,安装jexus作为承载服务器

二:Jexus独立版的安装

Jexus“独立版”指的是自带.net运行时(mono),不需要在客户服务器安装mono就能正常运行的Jexus版本,该版本只支持 64位Linux操作系统。

安装jexus独立版的命令是:
curl https://jexus.org/release/x64/install.sh|sh

注:运行安装命令,需要操作者有root权限。

常用命令:

Jexus包括如下操作命令(首先 cd /usr/jexus):
启动:sudo ./jws start 
停止:sudo ./jws stop 
重启:sudo ./jws restart 

三:创建站点

https://www.cnblogs.com/stulzq/p/7324616.html

首先得建“网站配置文件”,在/usr/jexus/siteconf中的每一个文件都是一个网站的配置文件,每一个配置文件就代表一个网站。
安装jexus后,在/usr/jexus/siteocnf中,就已经有一个默认的网站配置文件,文件名叫“default”。
你可以修改这个配置文件,也可以将这个配置文件复制并修改为一个新站。
配置文件中,有关键的三项是必填项:
port:端口号定义
root:虚拟根路径和物理根路径的定义
hosts:域名定义
 
端口号(port)是一个整数,一般是80,也可以是65535以下的其它整数,但这个端口号必须没有其它服务程序占用。
根路径(root)由两部分组成,中间用空格分开。空格前表示这个网站访问时的虚拟根路径(一般都是“/”),空格后是存放这个网站内容的文件夹的物理路径(比如“/var/www/default”)。
域名(hosts),填写访问这个网站的域名,如果有多个域名,域名间就英文逗号分开,同时还可以用“泛域名”,比如“*.mysite.com”。
网站名:jexus把网站配置文件的名称,作为网站名。
** 强调,网站配置文件名,不能有空格,第一个字符不能是“~”。
 
 
执行以下命令,创建网站目录:
mkdir /wwwroot/test
cd /wwwroot/test
上传网站文件到 test 目录,然后修改jexus站点配置,这里使用默认配置 default

修改配置如下图:


修改完成,保存退出!
执行命令重启jexus:
/usr/jexus/jws restart


四:部署core站点

使用ftp等工具上传至服务器

这里我放在/wwwroot/animal
然后配置animal站点的config文件
主要是: AppHost={cmd=dotnet /wwwroot/animal/xxxxx.dll; root=/wwwroot/student; port=5000}
 AppHost配置要点:
一,AppHost中的 root 路径一定要写对,要写你那个程序的完整程径
二,AppHost中的 dotnet 命令建议写完整路径
三,AppHost中的 port=0 很好用,但有前提(前提是你没有在core web程序或它的配置文件中设置端口号)
 Jexus自带进程守护 ,所以只要把jexus设置为系统服务即可

AppHost的配置格式是:
AppHost={CmdLine=应用程序命令行; AppRoot=应用程序工作目录; Port=应用程序HTTP侦听端口},其中:
“CmdLine”表示启动应用程序的命令行,如:dotnet /var/www/site1/app.dll;
“AppRoot”表示应用程序工作目录,如:/var/www/site1;
“Port”表示这个HTTP应用程序所使用的侦听端口,如:5000(Asp.Core默认端口是5000)。

例如,假设Asp.Net Core应用程序存放的路径在“/var/www/mysite”,其启动程序存放在该文件夹中,名称是“webapp”,程序启动后的侦听端口是5000,那么,AppHost配置应为: 
AppHost={CmdLine=/var/www/mysite/webapp;AppRoot=/var/www/mysite; port=5000 }
重启某个站点:
sudo /usr/jexus/jws restart siteName格式五:安装守护进程

五:安装守护进程

http://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html

【安装Supervisor】

1.yum install python-setuptools
2.easy_install supervisor

 


【配置Supervisor】
1.mkdir /etc/supervisor
2.echo_supervisord_conf > /etc/supervisor/supervisord.conf

 


修改supervisord.conf文件,将文件尾部的配置
;[include]
;files = relative/directory/*.ini
改成
[include]
files = conf.d/*.conf

【配置对ASP.NET Core应用的守护】
在/etc/supervisor/conf.d/目录下创建一个DotNetCoreWeb.conf文件,内容大致如下:

创建语法 touch DotNetCoreWeb.conf

[program:DotNetCoreWeb]
command=dotnet Portal.dll ; 运行程序的命令
directory=/home/wwwroot/DotNetCoreWeb/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/DotNetCoreWeb.err.log ; 错误日志文件
stdout_logfile=/var/log/DotNetCoreWeb.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT

作者:StrongAndyZhang
链接:https://www.jianshu.com/p/e1b5ee442a70
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

运行supervisord,查看是否生效:

supervisord -c /etc/supervisor/supervisord.conf
ps -ef | grep DotNetCoreWeb

至此关于ASP.NET Core应用程序的守护即配置完成

 
posted @ 2018-03-07 15:14  EasyCms-  阅读(236)  评论(0编辑  收藏  举报