.netcore部署在linux centos8系统上
最近在倒腾.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上部署成功。
当然如果顺利的话,就可以全部一遍通过,不顺利的话会因人而异,找到问题不断着手解决问题即可!