.NETCore3.0应用程序部署到CentOS7

匿名 (未验证) 提交于 2019-12-03 00:15:02

在阅读本文之前,您必须对Linux中涉及的常见命令有一定了解,本文侧重实战,不会对相关概念详述。

注:本文实验环境是 Oracle VM VirtualBox虚拟机, CentOS-7-x86_64-Minimal-1908系统 。

  • 可自行 Google 或百度
  • vi /etc/sysconfig/network-scripts/ifcfg-eno
  • ONBOOT=no 修改为 ONBOOT=yes
  • 重启网络 sudo service network restart
  • 将网卡的连接方式修改为桥接网卡
  • 输入命令 ip addr 查看 ip
  • 使用如下命令安装 CentOS 的 EPEL 仓库:yum install epel-release
  • 使用如下命令安装 Nginx:yum install nginx
  • Nginx 安装完成后, 系统并不会启动 Nginx, 使用如下命令启动 Nginx: systemctl start nginx
  • 使用如下命令设置系统启动后, 默认启动 Nginx: systemctl enable nginx
server {     listen 81;     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;     } }
systemctl start firewalld                                   //启动防火墙 systemctl status firewalld                                  //查看防火墙状态 firewall-cmd  --permanent --zone=public --add-service=http  //允许HTTP firewall-cmd  --permanent --zone=public --add-service=https //允许HTTPS firewall-cmd  --reload                                      //重新加载防火墙 firewall-cmd --zone=public --add-port=80/tcp --permanent    //开启80端口 firewall-cmd --list-ports                                   //查看已经开放的端口

原因是由于 SELinux 保护机制所导致,我们需要将 nginx 添加至 SELinux 的白名单。接下来我们通过一些命令解决这个问题。

yum install policycoreutils-python sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx sudo semodule -i mynginx.pp
yum install python-setuptools easy_install supervisor
  • 先创建 Supervisor 配置文件的目录
    • mkdir /etc/supervisor
  • 通过 echo_supervisord_conf 指令(用来生成初始配置文件,文件名可以自定义)来初始化一个配置文件:
    • echo_supervisord_conf > /etc/supervisor/supervisord.conf
  • 通过 vim 命令修改创建好的 supervisord.conf 配置信息,或有视图界面的直接打开编辑
    • vi /etc/supervisor/supervisord.conf
  • 文件内容末尾找到以下内容进行修改

    ;[include] ;files = relative/directory/*.ini  [include] files = /etc/supervisor/conf.d/*.conf
  • 创建目录,添加配置文件

    mkdir /etc/supervisor/conf.d cd /etc/supervisor/conf.d touch netcore.conf
  • 通过 vi 指令或视图界面编辑 netcore.conf,添加以下配置内容(分号后面的是注释,注意看注释,免得配置错了)

    [program:NetCoreDemo]                                         ;自定义进程名称, 根据自己喜好命名 command=dotnet NetCoreDemo.dll                          ;程序启动命令 使用dotnet 命令(dll是你的项目文件) directory=/root/Documents/NETCore                         ;命令执行的目录 你.NET Core 程序存放目录 autostart=true                                            ;在Supervisord启动时,程序是否启动 autorestart=true                                          ;程序退出后自动重启 startretries=5                                            ;启动失败自动重试次数,默认是3 startsecs=1                                               ;自动重启间隔 user=root                                                 ;设置启动进程的用户,默认是root priority=999                                              ;进程启动优先级,默认999,值小的优先启动 stderr_logfile=/etc/supervisor/log/GDSMPlateForm.err.log  ;标准错误日志 路径可以自定义,文件夹要建好 stdout_logfile=/etc/supervisor/log/GDSMPlateForm.out.log  ;标准输出日志 路径可以自定义,文件夹要建好 environment=ASPNETCORE_ENVIRONMENT=Production             ;进程环境变量 stopsignal=INT                                            ;请求停止时用来杀死程序的信号
  • 启动 supervisor 服务 supervisord -c /etc/supervisor/supervisord.conf

  • 1.进入/usr/lib/systemd/system/Ŀ¼ cd /usr/lib/systemd/system/
  • 2.创建自定义配置文件 supervisord.service touch supervisord.service
  • 3.编辑 supervisord.service 文件,有视图界面就直接打开编辑 vi supervisord.service
  • 4.添加以下内容,保存退出

    [Unit] Description=Supervisor daemon  [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s  [Install] WantedBy=multi-user.target
  • 5.设置开机启动 systemctl enable supervisord.service
  • 6.检测是否配置成功 systemctl is-enabled supervisord

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!