zoukankan      html  css  js  c++  java
  • .NET CORE 部署到 CentOS7全部过程

    从WIN系统 转到linux系统来,简直让我放弃,抓狂,我就想部署个网站怎么那么多问题。。。不过还是赚钱要紧。

    下面记录一下 从头到尾 怎么部署到 centos7entos7上面去

    首先你要有台linux系统及其 centos (好吧,这是废话,阿里云随便花几十块买一个试试)

    1. 安装图形界面。这很WIN。 我前面说了,所以图形界面救了我的命 至于为什么要这样,别问我,问我就就告诉你3部曲

    yum groups install 'MATE Desktop' # 安装图像界面
    yum groups install 'X Window System' # 图像系统 我也不知道怎么接受,没这个,你进不去
    systemctl set-default graphical.target #设置图像界面为启动项
    reboot  #重启
    

    2.安装nginx (编译安装我就不说了,度娘一大堆资料)

    1. 安装
    yum install -y nginx
    
    2. 启动nginx并设置开机启动
    systemctl start nginx
    
    systemctl enable nginx
    
    3. 验证nginx是否启动
    ps -ef | grep -v grep | grep nginx
    
    4. 查看nginx配置文件
    vi /etc/nginx/nginx.conf
    
    5. 对于yum安装的nginx来说,要想使配置文件的修改生效,需要重启nginx,运行以下命令:
    systemctl restart nginx
    

    3.上传文件配置上传项目文件会用到。那个 FTP我搞的头大,WIN下面安装一个软件 点点就好了

    yum -y install lrzsz
    
    上传文件命令
    rz
    

    4.下载xshell 工具 (我在这里下载的 https://www.netsarang.com/zh/) 当然这个工具看自己了 用WIN10自带也可以

    5.在 centos7上安装 .NETCORE SDK  一路 y 就行了,别问我为什么,y就行了,我也不知道

    官方地址
    https://dotnet.microsoft.com/download/linux-package-manager/centos/sdk-current
    
    
    添加dotnet产品密钥命令
    
    sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
    
    安装.NET SDK命令
    
    sudo yum update
    sudo yum install dotnet-sdk-2.2

    6. .NET CORE 发布

    1.进入对应的目录
    cd /xxxxx
    
    2. 用dotnet 命令启动试试 dotnet [xxxx].dll  xxx是你生成的项目*.dll 后面是更改端口,因为默认是 5000 https 5001 显然不用它的是不是
    
    dotnet WebApplication1.dll --server.urls "http://*:1818"
    

    好了。本地访问下,咦 是可以了,但是我关掉 xshell  就嗝屁了,这怎么行呢。好了看下面。(官方也有用服务,但是貌似我没整好。)

    那用守护进程来 nginx代理 

    好。我们先来用守护进程 让它永久启动先

    7.用守护进程让 .netcore网站一直在启动状态

    1.安装supervisor
     yum install supervisor
    
    2.启动服务 看配置文件地址 这里自己注意下,看你的安装配置文件在里,错了会启动失败,前面有图形界面了可以自己查看
    supervisord -c /etc/supervisord.conf
    
    3.编辑配置文件 路径在 /etc/supervosprd.d 下面创建一个随便你自己取名的 .ini 比如
    
    netcore.ini 内容是下面的
    
    [program:DeployLinux]   #DeployLinux  为程序的名称
    command=dotnet /apps/api/api/xxx.dll --urls="http://localhost:1818" #需要执行的命令
    directory=/website/test #命令执行的目录
    environment=ASPNETCORE_ENVIROMENT=Production #环境变量
    user=root #用户
    stopsignal=INT 
    autostart=true #是否自启动
    autorestart=true #是否自动重启
    startsecs=3 #自动重启时间间隔(s)
    stderr_logfile=/var/log/ossoffical.err.log #错误日志文件
    stdout_logfile=/var/log/ossoffical.out.log #输出日志文件
    
    仔细看看,commadn是不是跟上面那个doten xxxx.dll很相似啊。对就是这样,不解释了
    

    好了,我们关了 shll,呦 ,呦 , 呦 ,可以访问了啊。不得了了了。 真鸡儿费神,部署个网站要上天了,然鹅你发现,重启后又不行了。我丢,原来没设置重启服务器  自启守护软件

    启动设置

    --------------配置自启服务
    
    路径 /etc/systemd/system 
    
    自己创建一个 sv-auto.service (这个文件名称自己创建)
    
    服务文件内容填写
    
    [Unit]
    Description=sv auto #描述
    After=rc-local.service nss-user-lookup.target
    
    [Service]
    Type=forking
    ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf 
    ExecStop=/usr/bin/supervisord shutdown
    ExecReload=/usr/bin/supervisord reload 
    killMode=process
    Restart=on-failure
    RestartSec=42s
    
    [Install]
    WantedBy=multi-user.target
    
    --设置开机自启命令
    systemctl is-enabled [这个是你的文件名]
    
    systemctl is-enabled sv-auto

    8.Nginx部署的配置文件,因为默认,它会默认找一个目录,在这个目录新建自己的配置文件 比如

    server {
        listen        80;
        server_name   example.com *.example.com; #没域名删掉可以
        location / {
            proxy_pass         http://localhost:1818;
            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;
        }
    }
    

      

    好了。这样就正在达到了可以真正 可访问的站点了, 如果在 WIN服务版本下,远程连接-安装IIS-新建项目-指向目录-完事了

    从WIN过来,一下真的很难接受,为什么那么麻烦,可定很多人说弄弄脚本什么的。我们又不是专业的运维 没太多时间花这世界上,很多时候我们需要更快的解决问题,工具本来就是为了解决问题,而不是制造问题

    最后放一下,微软自己官网的教程

    https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.1

    下一步写写容器怎么部署。

  • 相关阅读:
    用C#编写获取远程IP,MAC的方法
    创建 TransactSQL 作业步骤
    S3C2440系统时钟
    C# 跟年月日判断星期几
    嵌入式系统启动例程
    使用HTML5和CSS3来创建幻灯片
    巧解Android时区加载过慢的问题
    HTML5之美
    C#如何取硬件标志
    S3C2440看门狗定时器(Watchdog)
  • 原文地址:https://www.cnblogs.com/missliu/p/11078084.html
Copyright © 2011-2022 走看看