.netcore部署在linux centos8系统上

dotnetdotnet

最近在倒腾.net相关的学习,写一篇关于linux下配置.dotnet的历程

服务器环境与本地开发环境必须一致.net5不兼容.netcore3.1

如何查看是否安装了dotnet的开发环境(linux与Windows一样)

dotnet --info

一、如何新建.netcore应用

dotnet new webapp -o MyWebApp --no-https

二、如何生成打包发布

cd MyWebApp
dotnet publish

三、将文件上传至linux服务器网站目录

暂时告一段落,接下来安装linux上的.netcore runtime运行环境(centos8安装用dnf命令)

dnf install dotnet-sdk-3.1

安装完毕后如图二显示

如何查看是否安装成功

执行命令

dotnet --info

如何运行.netcore应用

dotnet /xxxx/xxx/目录  应用名称.dll

运行成功后,提示默认监听5000端口

这个时候如果你是本地测试,直接在浏览器中输入localhost:5000

(当然.net6有时候不知道为什么静态文件会出现404可能是目录问题吧)

若要想使用域名访问则配置nginx反向代理

此处省略N个字,

server {
    listen 80;
     server_name 你域名;
     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;
           proxy_set_header   X-Forwarded-For
           proxy_add_x_forwarded_for;
           proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

记得重启nginx

nginx -s reload

设置进程守护supervisor

这个时候你会发现直接关闭了ssh连接网站就报错了

1.安装supervisor

dnf install supervisor
yum install supervisor

2.查看是否安装成功

supervisord --version

3.启动supervisor

supervisord -c /etc/supervisord.conf
systemctl enable supervisord
//设置开机启动
systemctl is-enabled supervisord
//查看是否设置成功
systemctl start supervisord
//启动服务
systemctl status supervisord.service
//查看服务状态

修改配置信息,supervisor 默认配置文件,放在 /etc/supervisord.conf 路径中

[program:DataMining]
command=dotnet /usr/share/nginx/html/publish/TestNetCore.dll ;
directory=/usr/share/nginx/html/publish ;
autorestart=true ;
stderr_logfile=/var/log/DataMining.err.log ;
stdout_logfile=/var/log/DataMining.out.log ;
environment=ASPNETCORE_ENVIRONMENT=Production ;
user=root ; 
stopsignal=INT

若是active则表示启动成功了,进程守护成功开启。至此.netcore在linux上部署成功。

当然如果顺利的话,就可以全部一遍通过,不顺利的话会因人而异,找到问题不断着手解决问题即可!