欢迎访问Admin100
您现在的位置是:首页 > 程序设计

将.net core 应用发布到centos,并使用supervisor做守护进程

Admin1002021-01-06

1、Centos 下安装.NET CORE 3.1

  • 注册Microsoft 密钥和源
    sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
  • 安装 .NET Core SDK
    sudo yum install dotnet-sdk-3.1
  • 安装 ASP.NET Core 运行时
    sudo yum install aspnetcore-runtime-3.1
  • 测试.NET SDK安装成功
    dotnet --version

 

2、安装nginx

  • 添加源
    sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  • 安装Nginx
    sudo yum -y install nginx
  • 设置开机启动
    sudo systemctl enable nginx

 

3、安装supervisor守护进程

  • 安装supervisor
    sudo yum install supervisor
  • 设置开机启动
    sudo systemctl enable supervisord

 

4、安装Mysql 8.0(不需要数据库请忽略)

  • 添加源
    sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  • 安装Mysql 8.0
    sudo yum --enablerepo=mysql80-community install mysql-community-server
  • 启动mysql前切记
    由于mysql8的限制,区分大小写必须在数据库初始化设置前进行设置,后期无法在配置文件etc/my.cnf中进行修改,修改了也不生效。安装好后千万不要启动服务。在etc目录下然后找到my.cnf,在末行添加 :lower_case_table_names=1然后再启动服务,这样lower_case_table_names 就初始化完成了。
  • 设置开机启动
    systemctl enable mysqld
  • 手动启动mysql
    service mysqld start 

 

5、Mysql账号配置

  • 查看默认密码
    sudo grep 'temporary password' /var/log/mysqld.log
  • 登录mysql
    mysql -uroot -p
  • 修改root本地登录密码
    alter user 'root'@'localhost' identified with mysql_native_password by '你的密码';
  • 允许root指定远程ip登录
    create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
    grant all on *.* to 'root'@'%'; 其中%可以换成指定的IP
  • 刷新数据库配置
    flush privileges;

 

6、发布网站到指定目录

  • 创建网站目录
    如:var目录下创建www/你的网站
  • 配置Nginx
    server {
        listen        8888;//端口号
        server_name   192.168.1.1; //服务器ip或者域名
        # ssl_certificate /etc/ssl/xxx.crt; //ssl证书
        # ssl_certificate_key /etc/ssl/xxx.key;
        # ssl_session_cache    shared:SSL:1m;
        # ssl_session_timeout  5m;
        # ssl_ciphers  HIGH:!aNULL:!MD5;
        # ssl_prefer_server_ciphers  on;

        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;
        }
    }
     
  • 配置supervisor
    在/etc/supervisord.d 目录下添加xx.ini文件配置如下
    [program: Test]
    command=dotnet Test.Web.dll ; 运行程序的命令
    directory=/var/www/Test/ ; 命令执行的目录
    autorestart=true ; 程序意外退出是否自动重启
    autostart=true ; 是否自动启动
    stderr_logfile=/var/log/supervisor/test.err.log ; 错误日志文件
    stdout_logfile=/var/log/supervisor/test.out.log ; 输出日志文件
    environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
    user=root ; 进程执行的用户身份
    stopsignal=INT
    startsecs=1 ; 自动重启间隔
  • 加载配置
    supervisorctl reload
相关标签: sudo ssl proxy