操作系统:centos8.3
.net版本:.net5.0
这里是官方的文档,按照惯例,微软的文章都不会写的很明白。
官方的说话8.0可以运行以下安装
sudo dnf install dotnet-sdk-5.0
但是我会提示Nothing to do错误,那么就按照7.0的文章来安装吧
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-5.0
sudo yum install aspnetcore-runtime-5.0
好了,至此netcore已经安装好了。
进入vs2019,点击项目文件发布
之后上传publish文件夹,cd进入该目录,执行
dotnet Shuanghei.Com.Web.dll
一大堆错误,如下图
百度搜了下,就是ssl证书的问题,具体原因我也没有去深入研究了,执行以下命令即可
cp /etc/pki/tls/cert.pem /usr/local/openssl/
然后配置nginx,加入以下节点,重启nginx,大功告成。
server { listen 443 ssl; server_name www.shuanghei.com; #ssl on;
#以下是ssl证书所在位置,根据实际情况填写
ssl_certificate /usr/ssl/wwwcert/cert.crt; ssl_certificate_key /usr/ssl/wwwcert/private.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { proxy_pass https://127.0.0.1:5001; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
#这里是设置访问 shuanghei.com#或者访问http://www.shuanghei.com 跳转到https上
server {
listen 80;
server_name www.shuanghei.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443;
server_name shuanghei.com;
rewrite ^(.*)$ https://www.$host$1 permanent;
}
server {
listen 80;
server_name shuanghei.com;
rewrite ^(.*)$ https://www.$host$1 permanent;
}
server {
listen 80 default_server;
server_name _;
return 404;
}
server {
listen 443 ssl http2 default_server;
server_name _;
ssl_certificate /usr/ssl/apicert/cert.crt;
ssl_certificate_key /usr/ssl/apicert/private.key;
return 404;
}
}
然后有个问题,不见得每次服务器重启,我都要去手动donnet一下吧,问题简单,编写一段shell
mkdir /usr/shell
cd /usr/shell
vim www.shuanghei.com.sh
在编辑器里输入,保存文件
#!/bin/sh
#chkconfig: 2345 90 10
#description:auto_run
#进入网站所在目录
cd /www/www.shuanghei.com/publish
dotnet Shuanghei.Com.Web.dll
copy文件到/etc/rc.d/init.d目录
cp ./www.shuanghei.com.sh /etc/rc.d/init.d
cd /etc/rc.d/init.d
此时shell还是白色的,没有可执行权限,修改权限
chmod u+x www.shuanghei.com.sh
之后添加开机启动此shell
chkconfig --add www.shuanghei.com.sh
chkconfig www.shuanghei.com.sh on
重启服务器之后,发现.netcore就自己启动啦,另外更新项目的时候,请按照正确流程更新,否则会出现以下错误,那就要重启服务器了。
首先找到dotnet进程号,然后kill掉,并且停止nginx,再进入网站文件夹,删除publish文件夹
kill 5200
nginx -s stop
cd /home/www.shuanghei.com
rm -rf publish
之后重新发布项目,上传publish,然后再次启动dotnet命令,启动nginx即可。