zoukankan      html  css  js  c++  java
  • Centos7 部署.Net Core+Nginx+Supervisor

    1、安装.Net Core SDK

      1.1、 在安装.NET之前,您需要注册Microsoft密钥,注册产品存储库并安装所需的依赖项。这只需要每台机器完成一次。             

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

      1.2 、更新可用于安装的产品,然后安装.NET SDK。

    sudo yum update
    sudo yum install dotnet-sdk-2.2

      1.3、验证安装是否成功

    dotnet --version

    2、部署.Net Core项目

      2.1、将发布后的.Net Core项目上传到Linux 新建文件夹 yunying中,然后进入yunying文件夹中,运行项目

      2.2、然后再浏览器中访问:http://ip:5000,如果访问不了,先将防火墙关闭

    3、安装Nginx并配置Nginx对项目的转发

      3.1、添加源

    sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

      3.2、安装Nginx

    sudo yum install -y nginx

      3.3、启动Nginx并设置开机自动运行

    sudo systemctl start nginx
    sudo systemctl enable nginx

      3.4、查看是否安装成功

                    在浏览器中输入:http://ip

      

      3.5、修改Nginx的配置文件,将/etc/nginx/conf.d/default.conf 文件内容替换为:

    server {
        listen       80;
        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;
        }
    }

    配置完成后执行 nginx -s reload 或者 systemctl restart nginx 进行 重启nginx,再次执行2操作运行.net core项目,然后访问80端口,这时有可能报502错误,原因是SELinux配置问题。

    解决办法有两种:

    a、关闭SELinux

    输入:seatatus,如果SELInux status:enabled,表示开启,修改配置文件/etc/selinux/config  修改为SELINUX=disabled 

    或者执行命令:

    setenforce 0
    sed -i 's/enforcing$/disabled/g' /etc/selinux/config

    b、将Nginx加到SELinux的允许名单

    1、yum install policycoreutils-python
    2、sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
    3、sudo semodule
    -i mynginx.pp

    重新运行.Net Core项目,并访问,就可以成功访问了。

    4、配置Supervisor守护进程

      4.1、安装Supervisor

    1、yum install python-setuptools
    2、easy_install supervisor

      4.2、配置Supervisor

    创建supervisor文件夹,通过echo_supervisord_conf初始化配置文件

    1、mkdir /etc/supervisor
    2、echo_supervisord_conf > /etc/supervisor/supervisord.conf

      4.3、修改新建的supervisord.conf配置信息,将最后面的修改为

    即去掉最后两行前面的“;”号。

      4.4、为.Net Core 项目添加进程配置文件:

    在/etc/supervisor/目录下创建名字为conf.d文件夹,在conf.d文件夹中创建一个WebDemo.ini文件,在WebDemo.ini文件添加以下配置

    [program:WebDemo]
    command=dotnet WebDemo.dll ; 运行程序的命令
    directory=/root/yunying/ ; 命令执行的目录
    autorestart=true ; 程序意外退出是否自动重启
    stderr_logfile=/var/log/WebDemo.err.log ; 错误日志文件
    stdout_logfile=/var/log/WebDemo.out.log ; 输出日志文件
    environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
    user=root ; 进程执行的用户身份
    stopsignal=INT

      4.5、启动Supervisor服务: 

    supervisord -c /etc/supervisor/supervisord.conf
    

    启动服务后可以通过命令查看是否配置成功

    ps -ef | grep WebDemo.dll

    如果看到以下内容,表示配置成功,就可以访问.Net Core项目了

      4.6 配置Supervisor开机启动

    进入/usr/lib/systemd/system/目录,并创建supervisord.service文件,添加内容:

    [Unit]
    Description=Supervisor daemon
    [Service]
    Type=forking
    ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
    ExecStop=/usr/bin/supervisorctl shutdown
    ExecReload=/usr/bin/supervisorctl reload
    KillMode=process
    Restart=on-failure
    RestartSec=42s
    [Install]
    WantedBy=multi-user.target

    使配置生效:

    systemctl daemon-reload

    设置服务开机启动:

    systemctl enable supervisord

    启动supervisor进程:

    systemctl start supervisord

    验证是否为开机启动:

    systemctl is-enabled supervisord

     

    5、常用命令:

      5.1、Nginx

    nginx             //启动nginx
    nginx -s reload   //重启nginx
    nginx -s stop     //关闭nginx

      5.2、supervisor

    supervisorctl status    //查看所有任务状态
    supervisorctl shutdown  //关闭所有任务
    supervisorctl start|stop|restart all          //控制所有进程
    supervisorctl start|stop|restart program_name //控制目标进程 

          

  • 相关阅读:
    Atitit 经济学常见的流派 古典主义与凯恩斯主义
    Atitit 学习方法 体系化学习方法 Excel 科目,分类,专业 三级分类。。 知识点。。 课程就是每一个知识点的详细化。。 比如经济学 类别 专业 xx概论知识点 3、金
    atiitt it学科体系化 体系树与知识点概念大总结.xlsx
    Atitit 减少财政支出普通人如何蹭政府补贴措施 attilax大总结.docx
    Atitit 信用管理概论 attilax学习心得
    Atitit.月度计划日程表 每月流程表v5
    Atitit 企业6大职能 attilax总结
    Atitit 常见每日流程日程日常工作.docx v8 ver ampm imp 签到 am y 天气情况检查 am y 晨会,每天或者隔天 am 每日计划(项目计划,日计划等。 am
    Atitit 财政赤字解决方案
    Atitit 建设自己的财政体系 attilax总结 1.1. 收入理论 2 1.2. 收入分类 2 1.3. 2 1.4. 非货币收入 2 1.5. 2 1.6. 降低期望 2 1.7.
  • 原文地址:https://www.cnblogs.com/zhuyuchao/p/11262666.html
Copyright © 2011-2022 走看看