• Linux .Net Core发布项目及搭建


    .Net Core环境部署

    前言: 根据官方的要求 ,在安装DotNetCore 环境之前需要注册Microsoft Key以及Product Repository,并且还需要安装一些依赖,这一步每台机器只需要运行一次,具体命令如下:

    sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

    1.先用下面的命令更新系统

    sudo yum update

    2.安装.Net Core SDK 3.1(这里我选的是3.1,你们可以根据项目的环境需要安装SDK的版本)

    
    
    //注册
    sudo yum install aspnetcore-runtime-3.0
    
    
    sudo yum install dotnet-sdk-3.1

    3.查看是否安装成功,也可以通过下面的命令知晓.Net Core 版本

    dotnet --version

    至此.Net  Core环境安装结束!

    .Net Core项目 发布至Linux

    前言:建.Net Core项目的过程,在这里不做解释,大家可以自行百度即可,这里直接从发布项目开始

    1.文件发布后是在本地,我们需要把本地的项目文件放入到Centos中,这里就需要借助一个软件FileZilla(下载地址:https://filezilla-project.org/download.php?platform=win64)

    这个软件可以将windows的文件上传至Centos中(这个软件的详细用法请自行百度)

     2.项目上传到Centos中后,在Centos发布项目的目录中执行 注意: 我的项目名是WebApplication1,所以是WebApplication1.dll,根据你自己取的名称来启动项目文件

    dotnet    WebApplication1.dll  

     

     可以看到我们已经启动了项目,但是现在还不急,我们要用Nginx反向代理来处理现有的端口

    .Net Core使用Nginx反向代理

    1.先安装下载Nginx

    sudo yum install -y nginx

    2. 检测是否安装完成(输入检测版本命令)

    nginx -v

    3. 直接启动nginx

    sudo systemctl start nginx

    3. 查看启动状态

    sudo systemctl status nginx

     4. (我这里是没有关闭防火墙的也可以访问,如果小伙伴访问不了可以尝试关闭防火墙,这里用Centos8版本)这个时候输入你自己的Centos IP地址在浏览器就可以访问了,页面如下:

     

    5.嘿嘿,到了这一步,这个时候我们要开始干点正经事了,将.Net Core 项目端口进行(Nginx)反向代理

    cd  /etc/nginx/conf.d   #先进入到nginx运行的代理文件中

    6.开始在/etc/nginx/conf.d 这个文件夹下面新建一个后缀名为conf结尾的的文件

    yum -y install vim*  #如果没有vim命令安装vim,我用的是Centos8,已经默认安装,可省略此命令
    vim demo.conf     #创建配置文件

    配置文件的内容如下:

    server {
      listen 1233 ;  #反向代理的访问的端口
      location / {
      proxy_pass  https://localhost:5001 ; #.net core  默认启动的端口
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection keep-alive;
      proxy_cache_bypass $http_upgrade;
      }
    }

    弄完, 命令 :wq保存并退出

    7.重新加载NGINX

    sudo systemctl reload nginx

    在发布目录启动我们的项目文件,

    8.接下来我们就可以在浏览器中访问我们的项目了(IP+代理端口)就可以访问了

    9.如果遇到502错误,先查询端口是否正常运行

    sudo netstat -antup  #查询linux 的所有端口占用情况

    10.项目启动正常+NgInx启动正常,Selinux没有关闭导致

    关闭Selinux

    setenforce 0   #为0即可

    Centos .Net Core 后台守护进程(Supervisor)部署

    前言:如果大家前面的配置都成功了,那么恭喜你,到了这里你应该会有一个疑问,现在项目是跑起来了但是如果我要一直运行项目,发现不能对Linux进行操作,而且终端关闭,项目也会立马停止,能不能有个东西,不用我们去管,项目一直在跑,又不会影响我们操作,更不会因为终端关闭而程序崩溃这个时候

    Supervisor就出现了!它能很好的解决我们刚才说的问题

    1.安装Supervisor
    sudo su - #切换为root用户 
    yum install epel-release
    sudo yum install supervisor
    supervisord --version   #检测supervisor是否安装成功 
    cat /usr/lib/systemd/system/supervisord.service   #查看服务文件安装的位置
     2.设置 supervisor 开机启动
    sudo systemctl enable supervisord
    sudo systemctl start supervisord
    3.进入 supervisor 控制台执行命令
    sudo supervisorctl
    4.查看配置文件目录
    cat /etc/supervisord.conf  #查看配置文件信息
    [include]
    files = supervisord.d/*.ini    #可以看到配置文件末尾是supervisord.d/*.ini的文件路径  在/etc/supervisord.d/的文件夹下创建文件后缀为ini结尾的文件 
    5.建立配置文件 demo.ini    注意:这个文件名是可以自定义的,不过后缀必须是ini

     #注意:可能是supervisor,程序BUG 原因   项目启动  Deploy.Linux.dll   必须两端有空格,否则运行不了

    [program:demo]
    command=/usr/bin/dotnet  Deploy.Linux.dll ; 输入执行命令,这里表示 dotnet  Deploy.Linux.dll   
    directory=/data/sites/demo/publish ; 应用程序根目录
    autostart=true ; 是否自动启动,当 supervisor 加载该配置文件的时候立即启动它
    autorestart=true ; 是否自动重启,当执行 dotnet  Deploy.Linux.dll 启动失败时,会重复的自动重启
    logfile_maxbytes=50MB ; 该配置文件输出单个日志文件的大小
    logfile_backups=10 ; 日志备份个数
    loglevel=info ; 记录日志级别
    stderr_logfile=/data/logs/demo/demo.err.log ; 指定标准错误输出日志文件
    stdout_logfile=/data/logs/demo/demo.out.log ; 指定标准输出日志文件
    environment=ASPNETCORE_ENVIRONMENT=Production ; 可配置环境变量,该环境变量将通过执行 dotnet  Deploy.Linux.dll 命令的时候传入到 .NET Core 应用程序中
    user=root ;启动服务的用户
    stopsignal=INT
    redirect_stderr=true
    6.创建日志文件目录,必须要创建对应配置文件日志的日志目录   
    sudo mkdir -p /data/logs/demo   #因为上面的日志路径是/data/logs/demo,所以我们这里的路径就是这个,这个根据自己的日志路径进行创建
    7. 重启 supervisor 服务
    sudo systemctl restart supervisord
    8. supervisor 服务命令
    sudo systemctl restart supervisord #使配置生效
    sudo systemctl enable supervisord #设置服务开机启动,即设置enable
    sudo systemctl start supervisord  #启动服务

    4.验证dotnet 进程是否启动成功

    ps -ef | grep dotnet

    5.(拓展知识)supervisor远程管理

    进入supervisor配置文件

    vim /etc/supervisor/supervisord.conf
    ;[inet_http_server]         ; inet (TCP) server disabled by default
    ;port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)
    ;username=user              ; (default is no username (open server))
    ;password=123               ; (default is no password (open server))
    
    ;以下内容开启http服务
    [inet_http_server]
    port=192.168.1.71:9001      ;ip 加端口,改为自己Centos的IP
    username=admin               ;登陆账号,可以不设
    password=123456              ;登陆账户,可以不设

     重启服务,就好了!

    6.关闭防火墙

    CentOS 7.0默认使用的是firewall作为防火墙。
    
    查看防火墙状态命令:firewall-cmd --state
    
    停止firewall命令:systemctl stop firewalld.service
    
    禁止firewall开机启动命令:systemctl disable firewalld.service

     -------------------------------------------------------------------------------------------------------------------------------------------------

     
  • 相关阅读:
    xiaopiu产品原型设计与团队实时协作平台
    asp.net webform过滤器(注意我们可以在拦截请求的同时设置回调函数)
    wdScrollTab
    pageoffice实现网页打开编辑保存word文档(基于SSM框架)
    ESB企业服务总线
    JRebel for IntelliJ
    dtcms 手机浏览
    maven仓库添加jar架包
    shell脚本实现FTP自动上传文件
    mysql创建数据库指定字符集
  • 原文地址:https://www.cnblogs.com/XiangZiPeng/p/12367784.html
Copyright © 2020-2023  润新知