linux(centos)部署asp.net core项目

 1 2条评论

操作系统: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即可。

本文作者:双黑

版权声明:本站文章欢迎链接分享,禁止全文转载!

游客