使用以下命令注册Microsoft须要的依赖环境,该命令相似于Window上的环境变量,它指向了微软的环境源,地址中的对每一个系统是不同,因此咱们要斟酌一下的Linux系统是什么,再去拉取。html
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
好比你当时装了.NET Core3.0,可是呢!微软过了几天又出了.NET Core 3.1 ,这个时候就须要更新你这个配给的配置,经过如下命令。python
yum update
yum update命令会从新拉取下,随后从新作配置,但你的dotnet sdk不会受任何影响,随后安装dotnet sdk。linux
yum install dotnet-sdk-3.1
安装完会出现如下截图,随后咱们能够经过dotnet--info来判断是否安装成功。shell
此时环境就运行环境就搭建完璧了~ubuntu
值得一提的是任何服务器的ftp端口都是22,这个是必需要注意的,不然会一直链接失败。vim
此时咱们向服务器传送了发布文件,若是不出意外咱们能够直接在Liunx上看到。经过Ls 、Cd /完成查看。安全
随后咱们找到了以dll结尾而且是你解决方案的名称,随后咱们直接dotnet 命令来进行启动项目。服务器
此时咱们能够看到咱们的内网是以5000端口启动的,这得益于咱们直接将.NET Core直接设置缘由,固然咱们若是要在阿里云上公网IP的安全映射进行设置,在此以前咱们要测试一下内网是否正常,经常使用的命令是curl,不够这个命令须要安装,在Centos和ubuntu安装命令是不同的。具体命令以下:网络
apt-get install curl //ubuntu的命令框架
yum install curl //Centos的命令
关于Curl这个命令很强大,这个就不这里详谈了,安装完成以后就可使用这个命令了,最后咱们测试内网看看是否正常。
此时发现内网已经打通,如今咱们经过阿里云公网IP对内网进行映射。在阿里云中的安全组中,找到安全组规则,添加一条映射。放开全部IP,这样就ok了,具体以下。
此时,试着激动的双手打开手机试着去访问....OK,Nice..
.
不过一个尴尬的事情出现了,咱们只是经过dotnet命令启动了项目,可是咱们的XShell关闭你的应用程序就会关闭,此时咱们就须要进程守护了。这样就可让你的应用程序每时每刻均可觉得你服务。Supervisor是Python作一个client/server服务,是Linux/Unix双系统下的一个进程管理工具。它能够很方便的监听、启动、中止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它从新拉起,很方便的作到进程自动恢复的功能,再也不须要本身写shell脚原本控制。经过这里你应该就会明白咱们会干什么,咱们会尝试着关闭Xshell,看看它会不会帮咱们去重启应用程序,若是能够正常访问,那么你的进程守护配置成功!好吧废话很少说。
咱们首先须要在Linux系统上安装 Supervisor ,在安装它以前,咱们须要安装Python 包。
yum install python-setuptools
随后咱们在安装Supervisor,执行结果以下图。
easy_install supervisor
随后建立几个文件夹,包括supervisor,在这个文件夹中包含了supervisor的一切配置。包含了进程配置文件(也就是大概你想让这个进程去干什么?去执行什么命令?在什么目录下?下面咱们会逐一说明下配置文件的各个节点)以及supervisor自己监听服务的配置。
mkdir /etc/supervisor
mkdir /etc/supervisor/conf.d
echo_supervisord_conf > /etc/supervisor/supervisord.conf
cd /etc/supervisor vim supervisord.conf
改变这个路径只是为了可以找到咱们的conf.d文件夹中咱们自定义的配置文件。conf.d中是咱们本身建立的。因此要进行改变。咱们在这个文件内容的最下面,能够看到有一个included标签,这个就是我刚才所说的。它默认是这个样子,从内容能够看出是让咱们进行修改的。
修改前的内容以下:
;[include] ;files = relative/directory/*ini
修改后的内容以下:
[include] files = conf.d/*.conf
这个时候supervisord的配置已经结束了,那么就剩你的应用程序级别的配置文件了。上述的步骤其实均可以经过FileZilla工具实现,这样更好的去编辑。
[program:AspNetCore_Cookie] command=dotnet AspNetCore_Cookie.dll directory=/home/publish environment=ASPNETCORE__ENVIRONMENT=Production user=root stopsignal=INT autostart=true autorestart=true startsecs=1 stderr_logfile=/var/log/HelloWebApp.err.log stdout_logfile=/var/log/HelloWebApp.out.log
对于上述的配置文件我作了以下解释,固然有错误的话能够纠正,毕竟是根据我对鸟语的理解不是很...emmm
command= 要执行的命令,在.NET Core 应用程序中 咱们都是使用dotnet 命令来启动应用程序的
directory= 命令执行的目录 好比你的publish 在某个文件夹 那你就写哪里
environment= 环境变量 ASP.NET Core的环境变量 多是有的时候须要linux管理员去访问,不过我是root,这个我是不太懂
user= 进程执行的用户身份 这里写的root
stopsignal=INT 这个都没人动 我也不动 emmm
autostart= 是否自动启动
autorestart= 是否自动重启
startsecs= 自动重启间隔
stderr_logfile= 标准错误日志
stdout_logfile= 标准输出日志
就如今,咱们的配置已完毕,若是你是按照上方进行配置的,那么你确定是没有问题的。
运行 supervisord -c /etc/supervisor/supervisord.conf 看看是否包报错信息,若是没有则配置成功。随后咱们直接启动Supervisord服务。
sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf
而且咱们查看进程看看咱们刚才的应用程序级别配置是否有效。
如今配置一切成功,去打开你的网站吧!,关闭你的XShell 或者 云端在线远程,这个时候再去试着访问你的网站。ok没问题。