按顺序安装即可


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
2
3
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.1.105

安装完.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的公网地址,如果出现以下界面,可以跳过下面的“防火墙配置”:

Nginx默认主页
Nginx默认主页

如果访问不到,那么需要接着配置防火墙

防火墙配置

1
2
3
firewall-cmd --zone=public --add-port=80/tcp --permanent //开放80端口

systemctl restart firewalld //重启防火墙

修改Ngnix配置,转发5000端口

修改 /etc/nginx/conf.d/default.conf 文件

1
2
3
4
5
6
7
8
9
10
11
server {
listen 80;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

改完之后,重启Nginx使其立即生效

1
nginx –s reload

这个时候,通过命令dotnet xxx.dll启动我们的dotnet应用后,访问服务器公网地址(80端口),就可以访问到我们的应用了。

安装和配置守护程序(Supervisor)

通过上边的配置,我们的程序虽然能跑起来了,但是,其会一直占据我们的终端。这个时候,我们需要安装守护程序,让其在后台运行。

安装守护程序Supervisor
逐条运行以下命令安装

1
2
yum install python-setuptools
easy_install supervisor

配置守护程序

为守护程序添加一个用于保存配置文件的目录

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
2
3
4
5
6
7
8
9
[program:WebApplication1]
command=dotnet WebApplication1.dll ; 运行程序的命令
directory=/home/wwwroot/WebApplication1/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/WebApplication1.err.log ; 错误日志文件
stdout_logfile=/var/log/WebApplication1.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT

根据自己的情况修改,其中command后边的参数,为我们需要后台执行的命令,这里输入dotnet+程序名,
directory参数为你程序所在的目录.修改完之后保存!使用以下命令,使配置立即生效。

1
supervisord -c /etc/supervisor/supervisord.conf

如果,运行该命令报错,不用理会,说明我们的进程已经在运行了!我们可以用以下命令查看

1
ps -ef | grep WebApplication1

出现以下结果,说明dotnet程序正在后台运行

dotnet后台运行
dotnet后台运行

将守护程序添加到开机自启
在/usr/lib/systemd/system/目录中,新建一个“supervisord.service”文件,写入以下内容并保存:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

执行以下命令,使supervisord.service生效:

1
systemctl enable supervisord

验证守护程序时候开机自启:

1
systemctl is-enabled supervisord

关于.net core跨平台的配置,还没完整,还需要配置mysql数据库,关于Mysql数据库的配置,有时间我也写一下!