zoukankan      html  css  js  c++  java
  • CentOS7部署.Net Core2.0站点(中)

             继续上篇的内容,本篇来学习下nginx的配置和守护进程supervisor的使用。

    一、Nginx安装及配置

    (1)安装nginx

    sudo yum install epel-release #添加源
    sudo yum install nginx    #安装nginx

    (2)启动nginx

    sudo systemctl start nginx
    sudo systemctl enable nginx 

    (3)配置防火墙

    sudo firewall-cmd --zone=public --add-port=80/tcp --permanent  #开放80端口
    systemctl restart firewalld #重启防火墙以使配置即时生效

    成功完成以上配置后,测试nginx是否可以访问,本地浏览器输入127.0.0.1,成功显示如下

    (4)修改配置文件转发.net core应用程序

    创建并编辑一个新的配置文件netcore.conf,命令如下

    [root@localhost nginx]# cd /etc/nginx/conf.d
    [root@localhost conf.d]# touch netcore.conf
    [root@localhost conf.d]# vim netcore.conf

    netcore.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 $http_host;
                    proxy_cache_bypass $http_upgrade;
       }
    }

    编辑配置文件nginx.conf(默认包含了自定义的配置文件内容),命令如下

    [root@localhost conf.d]# vim /etc/nginx/nginx.conf

    注释默认的80端口,如下

    重启nginx,命令如下

    [root@localhost conf.d]# systemctl restart nginx

    重新启动.netcore应用,

    [root@localhost wuyi]# cd /home/wwwroot/MyWeb/
    [root@localhost MyWeb]# dotnet MyCoreWebApp.dll

    外部系统访问centos的Ip192.168.195.128,悲剧地错误又出现了

    最后通过百度解决了上面的问题,跟SELinux保护机制有关,依次执行如下三条命令:

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

    外部系统(我的是win10)再次访问centos的Ip192.168.195.128,已经成功转发。

     

    二、安装与配置守护服务Supervisor

    (1)安装supervisor

    [root@localhost wuyi]# yum install python-setuptools
    [root@localhost wuyi]# easy_install supervisor

    (2)配置supervisor

    [root@localhost wuyi]# mkdir /etc/supervisor
    [root@localhost wuyi]# echo_supervisord_conf > /etc/supervisor/supervisord.conf

    (3)编辑配置文件supervisord.conf

    [root@localhost wuyi]# vim /etc/supervisor/supervisord.conf

    把最后的include部分改为为如下代码(注意要把前面的分号“;”去掉):

    (4)启动服务(如已经启动,此步可省略)

    [root@localhost wuyi]# supervisord -c /etc/supervisor/supervisord.conf

    (5)使修改的配置文件生效

    [root@localhost wuyi]# supervisorctl reload

     (6)配置对.NET Core应用的守护

     创建一个MyCoreWebApp.conf文件,拷贝到“/etc/supervisor/conf.d/MyCoreWebApp.conf”下,文件内容如下:

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

     (7)验证dotnet进程是否启动,查询下进程MyCoreWebApp.dll是否存在,存在则可以再浏览器中打开了

    [root@localhost wuyi]# ps -ef|grep MyCoreWebApp

    三、设置Supervisor服务开机启动和远程管理

    (1)创建配置文件

     创建一个supervisord.service文件,拷贝到“/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

    (2)设置supervisord服务为开机启动

    [root@localhost system]# systemctl enable supervisord

    (3)supervisor远程管理

       修改配置文件“vim /etc/supervisor/supervisord.conf”的“inet_http_server“节点,修改保存后再开放防火墙9001端口。

    (配置文件节点更改后内容如下)

    [inet_http_server]
    port=192.168.195.128:9001       ;本机ip 加端口
    username=admin               ;登陆账号,可以不设
    password=123456              ;登陆账户,可以不设

    (相关命令如下)

    [root@localhost system]# vim /etc/supervisor/supervisord.conf
    [root@localhost system]# supervisorctl reload
    Restarted supervisord
    [root@localhost system]# firewall-cmd --zone=public --add-port=9001/tcp --permanent
    success
    [root@localhost system]# systemctl restart firewalld

    配置完成,在浏览器即可正常访问

     终于写完了,下篇将继续研究ASP.NET Core负载均衡集群搭建.....

  • 相关阅读:
    关联容器:unordered_map详细介绍
    c++类成员变量初始化相关问题
    全方位深入理解JavaScript面向对象
    彻底搞懂 JS 中 this 机制
    IDEA 服务器热部署详解(On Update action/On frame deactivation)
    Java书籍推荐
    JSTL
    谭浩强的书中的一些知识点(1)
    EL表达式
    第一章第二章
  • 原文地址:https://www.cnblogs.com/yige/p/8856206.html
Copyright © 2011-2022 走看看