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
mkdir /wwwroot/test
cd /wwwroot/test
上传网站文件到 test 目录,然后修改jexus站点配置,这里使用默认配置 default
修改配置如下图:
四:部署core站点
使用ftp等工具上传至服务器
这里我放在/wwwroot/animal
然后配置animal站点的config文件
一,AppHost中的 root 路径一定要写对,要写你那个程序的完整程径
二,AppHost中的 dotnet 命令建议写完整路径
三,AppHost中的 port=0 很好用,但有前提(前提是你没有在core web程序或它的配置文件中设置端口号)
AppHost的配置格式是:
AppHost={CmdLine=应用程序命令行; AppRoot=应用程序工作目录; Port=应用程序HTTP侦听端口},其中:
“CmdLine”表示启动应用程序的命令行,如:dotnet /var/www/site1/app.dll;
“AppRoot”表示应用程序工作目录,如:/var/www/site1;
“Port”表示这个HTTP应用程序所使用的侦听端口,如:5000(Asp.Core默认端口是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应用程序的守护即配置完成