Asp.NetCore Linux上使用宝塔快速部署

准备一台Linux服务器,我的服务器是:阿里云ECS CentOS 8.4 64位
1.远程连接到服务器并安装宝塔面板,安装命令:yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh,官方安装文档 :https://www.bt.cn/bbs/thread-19376-1-1.html

2.安装完毕后面板上会显示面板端口,默认是8888跟着一串符号,密码也一起展示了,建议修改默认端口。注意:云服务器需要开放8888端口限制,否则可能无法访问。各厂商修改地址可百度,大致都是在当前云服务器的安全组

3.数据库等软件自行选择安装,这里重点说下.NetCore环境搭建

a)【非必要,部署时可以选择独立部署】打开【宝塔SSH终端】输入:sudo dnf install aspnetcore-runtime-5.0  安装运行时,这里安装了5.0的运行时,推荐安装asp.netcore的运行时,因为它同时包括 .NET 和 ASP.NET Core 运行时,官网教程:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos

b)到应用商店安装【Supervisor管理器】,这个软件类似windows服务,可使我们的程序开机自启、异常重启等操作,后续会用这个软件给我们的程序添加守护进程。更多详情可以百度看看。

c)  发布应用程序:

这是以前一个老项目,发布时目标框架选择你正在开发框架,部署模式独立,如果是框架依赖的话需要维护服务器上的版本,

然后将文件上传是服务器,我一般上传至:/www/wwwroot/项目文件夹

d) 点击宝塔面板-网站,添加站点

点击站点右侧的设置,选择配置文件,修改如下


server
{
    listen 80;//监听端口
    server_name <域名>;//注意域名
      index index.html baidu_verify_9TfbAT6wbE.html;
    root /www/wwwroot/<dire>;//路径
    location / {
      proxy_pass         http://localhost:5002;//注意端口
      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;
    }
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-00.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/<dire>.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
        proxy_pass  http://localhost:5002;//注意端口
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null; 
        proxy_pass  http://localhost:5002;//注意端口
    }
    access_log  /dev/null;
    error_log  /www/wwwlogs/<dire>

 


 注意:asp.netcore 默认启动端口是5000,如果多个项目可能会造成启动时报端口占用的错,可以:

        1.在【appsettings.json】中添加“urls”:"https://localhost:5002"

        2.启动项目是添加 --urls https://localhost:5002

 任选一种方式

e) 重点来了       打开前面安装好的【Supervisor管理器】,添加守护进程

      

 

 

 如果这里启动失败了,请检查以下地方:

       1.启动命令是否正确 dotnet 项目名.dll

       2.前往启动目录日志查排查是否是程序自身的问题 ,比如数据库连接字符串不对啊什么的

       3.在【Supervisor管理器】-【子配置文件】找到【stderr_logfile】的日志文件查看原因后排查

 

不出意外的话,应该是要出意外了,估计一把过不了,按照流程在走一遍看看哪个地方错了。瑞思拜!

 

posted @ 2021-08-02 10:56  luckcc  阅读(2023)  评论(3)    收藏  举报