• .Net Core


    环境

    CentOS 7 x64,详见 安装CentOS7虚拟机

    .Net Core 2.1.801 详见 CentOS 7 下安装.NET Core SDK 2.1

    ftp  详见  CentOS7 FTP安装与配置

    辅助工具

    Xftp上传文件到CentOS

    PuTTY工具连接CentOS, 安装包下载

    一、安装配置supervisor  

    如果需要卸载supervisor 执行:

    yum remove supervisor

     查看是否已卸载(查看supervisor版本)

    supervisord -v

    1.执行下列命令安装supervisor

    wget https://mirrors.tuna.tsinghua.edu.cn/epel/epel-release-latest-7.noarch.rpm
    rpm -ivh epel-release-latest-7.noarch.rpm
    yum install supervisor -y

    如报“-bash: wget: 未找到命令”,则先安装一下 yum 命令,再执行上面的命令

    yum -y install wget

    2.查看版本,检验是否安装成功

    supervisord -v

    3.配置

    修改supervisor配置文件

    vim /etc/supervisord.conf

    修改以下几行

    #启用访问web控制界面,inet_http_server区段修改为
    [inet_http_server]        
    port=*:9001     
    
    #设置账户和密码
    username=user 
    password=123     
    

     

     

    4.启动supervisord服务

    开机自动启动

    sudo systemctl enable supervisord

    启动

    sudo systemctl start supervisord

    其他命令:

    如果修改了/etc/supervisord.conf 文件,可以通过reload命令来重新加载配置文件

    重启命令:

    sudo supervisorctl reload

    停止命令:

    sudo systemctl stop supervisord

      

    5.防火墙设置

    开放端口

    firewall-cmd --zone=public --add-port=9001/tcp --permanent

    重启防火墙

    firewall-cmd --reload

    查看已开放的端口

    firewall-cmd --list-ports

    6.输入 http://ip:9001,提示需要输入密码,用户名为user,密码123

    查询本机ip命令:

    ip addr

     

    二、部署.net core 2.1项目

    1.准备好.net core项目

     

     

     添加host.json文件,设置端口号(可以改成其他端口号)

       

    {
      "url": "http://*:2222"
    }

     修改Program.cs

      

     public static IWebHostBuilder CreateWebHostBuilder(string[] args)
     {
         var configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory)
                                              .AddJsonFile("host.json")
                                              .Build();
         var url = configuration["url"];
         return WebHost.CreateDefaultBuilder(args).UseUrls(url).UseStartup<Startup>();
    }

    确保你的项目运行正常

    2.发布

    发布前,先修改“HelloWeb.csproj.user”文件,加上如下内容(你也可以不用加,发布过一次才看得到这个文件):

     

     

    <MvcRazorCompileOnPublish>False</MvcRazorCompileOnPublish>

     右键项目->发布 

     

      不加“<MvcRazorCompileOnPublish>False</MvcRazorCompileOnPublish>”的发布效果 

     

     加“<MvcRazorCompileOnPublish>False</MvcRazorCompileOnPublish>”的发布效果

    本文发布方式使用了加“<MvcRazorCompileOnPublish>False</MvcRazorCompileOnPublish>” 

    3.使用ftp工具上传到CentOS服务器,这里使用Xftp工具上传

    新建文件夹“helloweb”

      

    复制已发布的文件到helloweb

     

    4.检测文件是否可正常运行

    cd /home/vsftpd/admin/helloweb
    ls

     用dotnet命令运行项目

    dotnet HelloWeb.dll

    如出现上面提示则表示可以正常运行

    按Ctrl+C退出来

    5.创建 supervisor 托管的 .NET Core 的服务配置文件

    切换到supervisor的统一配置目录,注意这里的supervisord多了个“d”

    cd /etc/supervisord.d

    创建配置文件helloweb.ini (注意后缀为.ini,与上面配置supervisor的第3点的include区段的文件后缀设置一致

    vim helloweb.ini
    [program:helloweb]
    command=/usr/bin/dotnet  HelloWeb.dll ; 输入执行命令,这里表示 dotnet  HelloWeb.dll
    directory=/home/vsftpd/admin/helloweb ; 应用程序根目录
    autostart=true ; 是否自动启动,当 supervisor 加载该配置文件的时候立即启动它
    autorestart=true ; 是否自动重启,当执行 dotnet  Deploy.Linux.dll 启动失败时,会重复的自动重启
    logfile_maxbytes=50MB ; 该配置文件输出单个日志文件的大小
    logfile_backups=10 ; 日志备份个数
    loglevel=info ; 记录日志级别
    stderr_logfile=/home/vsftpd/admin/helloweb/helloweb.err.log ; 指定标准错误输出日志文件,前面的目录可改成其他的,但要确保该目录已存在 
    stdout_logfile=/home/vsftpd/admin/helloweb/helloweb.out.log ; 指定标准输出日志文件 ,前面的目录可改成其他的,但要确保该目录已存在 
    environment
    =ASPNETCORE_ENVIRONMENT=Production ; 可配置环境变量,该环境变量将通过执行 dotnet HelloWeb.dll 命令的时候传入到 .NET Core 应用程序中 user=root ;启动服务的用户 stopsignal=INT redirect_stderr=true

    更新新的配置到 supervisord  (这种方式不会影响之前已运行中的其他的配置的程序)

    supervisorctl update

    其他命令:

    重新启动配置中的所有程序:

    supervisorctl reload

    启动某个进程(program_name=你配置中[program:xxxx]写的程序名称,例如:helloweb )

    supervisorctl start program_name

    查看正在守候的进程

    supervisorctl

    (退出查看进程命令是: exit )

    停止某一进程 (program_name=你配置中[program:xxxx]写的程序名称,例如:helloweb )

    spervisorctl stop program_name

    重启某一进程 (program_name=你配置中[program:xxxx]写的程序名称,例如:helloweb)

    supervisorctl restart program_name

    停止全部进程

    supervisorctl stop all

    注意:用stop停止掉的进程,用reload或者update都不会自动重启。

      

    6.防火墙设置

    开放端口:

    firewall-cmd --zone=public --add-port=2222/tcp --permanent

    重启防火墙:

    firewall-cmd --reload

    7.重新访问Supervisor,输入 http://ip:9001

    出现绿色的“running”表示成功,名称“helloweb”就是刚刚的helloweb.ini配置中的[program:helloweb] 的program:后面定义的名称

      

    访问helloweb的站点网址:http://ip:2222

    8.更新部署

    如果需更新 dll文件,复制dll覆盖原dll后,点一下“Restart”即可

     

     

      

  • 相关阅读:
    sublimeformaya
    sitecustomize.py 用法
    计蒜客之矩阵翻转
    计蒜客之判断质数
    计蒜客之斐波那契数列
    LTE 测试文档(翻译)
    Manual——Test (翻译1)
    LTE Manual ——Logging(翻译)
    嵌入式linux的学习之路[转]
    C语言预处理程序[转]
  • 原文地址:https://www.cnblogs.com/hellocjr/p/11459126.html
Copyright © 2020-2023  润新知