按顺序安装即可
dotnet相关安装与配置
安装依赖项
1 | sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc |
1 | 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 SDK
1 | sudo yum update |
安装完.net sdk之后,运行程序的方法
1 | dotnet ApplicationName.dll |
到这里,centos上就能运行dotnet程序了,端口默认为5000;然而,只是在linux本地能运行,外网还不能访问。这时候,我们还需要将我们服务器上的5000端口映射到80端口上!需要用到Nginx!
Nginx相关安装与配置
安装
以下三个命令完成Nginx的安装
1 | curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm |
1 | rpm -ivh nginx.rpm |
1 | yum install nginx |
当终端上显示“完毕”,Nginx就安装完毕了
启动和配置
以下命令启动Nginx
1 | systemctl start nginx |
设置自启,当系统宕机重启后,我们就不用手动去启动Nginx了
1
systemctl enable nginx
Nginx启动后,试着用浏览器访问centos的公网地址,如果出现以下界面,可以跳过下面的“防火墙配置”:
如果访问不到,那么需要接着配置防火墙
防火墙配置
1 | firewall-cmd --zone=public --add-port=80/tcp --permanent //开放80端口 |
修改Ngnix配置,转发5000端口
修改 /etc/nginx/conf.d/default.conf 文件
1 | server { |
改完之后,重启Nginx使其立即生效
1 | nginx –s reload |
这个时候,通过命令dotnet xxx.dll启动我们的dotnet应用后,访问服务器公网地址(80端口),就可以访问到我们的应用了。
安装和配置守护程序(Supervisor)
通过上边的配置,我们的程序虽然能跑起来了,但是,其会一直占据我们的终端。这个时候,我们需要安装守护程序,让其在后台运行。
安装守护程序Supervisor
逐条运行以下命令安装
1 | yum install python-setuptools |
配置守护程序
为守护程序添加一个用于保存配置文件的目录
1 | mkdir /etc/supervisor |
输出守护程序的默认配置文件到刚刚新建的目录
1 | echo_supervisord_conf > /etc/supervisor/supervisord.conf |
修改默认配置文件supervisord.conf
将
修改为
修改配置文件后,可以重启使其立刻生效
1 | supervisorctl reload |
在/etc/supervisor/目录下,新建一个conf.d目录,在conf.d目录下新建一个配置文件,命名为WebApplication1.conf,并写入下面的内容
1 | [ ] |
根据自己的情况修改,其中command后边的参数,为我们需要后台执行的命令,这里输入dotnet+程序名,
directory参数为你程序所在的目录.修改完之后保存!使用以下命令,使配置立即生效。
1 | supervisord -c /etc/supervisor/supervisord.conf |
如果,运行该命令报错,不用理会,说明我们的进程已经在运行了!我们可以用以下命令查看
1 | ps -ef | grep WebApplication1 |
出现以下结果,说明dotnet程序正在后台运行
将守护程序添加到开机自启
在/usr/lib/systemd/system/目录中,新建一个“supervisord.service”文件,写入以下内容并保存:
1 |
|
执行以下命令,使supervisord.service生效:
1 | systemctl enable supervisord |
验证守护程序时候开机自启:
1 | systemctl is-enabled supervisord |