继续上篇的内容,本篇来学习下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负载均衡集群搭建.....

CentOS7部署.Net Core2.0站点(中)的更多相关文章

  1. CentOS7部署.Net Core2.0站点(上)

    其实类似的教程网上已经有很多了,之所以要写,是应为发现在使用最新的centos7和.netcore2.1版本时还是遇到了不少坑,所以记录下,以后希望大家能少走弯路. 一.安装CentOS7 我是用虚拟 ...

  2. .NET Core2.0 MVC中使用EF访问数据

    使用环境:Win7+VS2017 一.新建一个.NET Core2.0的MVC项目 二.使用Nuget添加EF的依赖 输入命令:Install-Package Microsoft.EntityFram ...

  3. Centos7.2部署.Net Core2.0 WebApi

    部署前准备 1.VisualStudio2017+.netcore2.0SDK 2.Centos7.2 3.SecureCRT,Xftp(根据自己喜好) 创建WebApi项目 修改Program.cs ...

  4. CentOS7部署Dotnet Core2.1

    前言 笔者在毫无Linux部署.net core的经验下,第一次用了15分钟完成部署,第二次在生产环境用了5分钟.下文将说明如何在CentOS7下完成.NetCore2.1的部署,包括如何创建ASP. ...

  5. DotNet跨平台 - docker部署.net core2.0项目

    参考文档: https://docs.docker.com/install/linux/docker-ce/centos/ http://www.dockerinfo.net/document htt ...

  6. Centos7 部署.net core2.1 详细步骤

    安装dotnet sdk(添加产品秘钥与yum源) 添加yum源:sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages ...

  7. CentOS7部署HDP3.1.0.0

    Apache Ambari是一个基于Web的支持Apache Hadoop集群的供应.管理和监控的开源工具,Ambari已支持大多数Hadoop组件,包括HDFS.MapReduce.Hive.Pig ...

  8. 云服务器 Centos7 部署 Elasticsearch 8.0 + Kibana 8.0 指南

    文章转载自:https://mp.weixin.qq.com/s/iPfh9Mkwxf5lieiqt6ltxQ 服务器是命令行模式登录,没法以浏览器方式访问.而官方推荐的快捷部署方式,在kibana ...

  9. centos7部署.net core2.1

    1.centos 7.0及以上服务器 2..NET SDK 安装 2.1 安装 https://www.microsoft.com/net/download/linux-package-manager ...

随机推荐

  1. springboot pom 详解

    Starter POMs是可以包含到应用中的一个方便的依赖关系描述符集合.可以获取所有spring及相关技术的一站式服务,不需要翻阅示例代码,拷贝粘贴大量的依赖描述符. Starter名字的含义: 所 ...

  2. KVM虚拟环境安装

    关闭防火墙 linux 半虚拟化是不能运行与安装KVM虚拟机的. #egrep '(vmx|svm)' --color=always /proc/cpuinfo yum -y install kvm ...

  3. django数据模型中关于on_delete的使用

    django数据模型中关于on_delete的使用 class BookModel(models.Model): """ 书籍表 """ b ...

  4. 本地Windows环境下安装MySql

    Windows 上安装 MySQL Windows 上安装 MySQL 相对来说会较为简单,你需要在 MySQL 下载中下载 Windows 版本的 MySQL 安装包. Download Link: ...

  5. 初探 模拟退火算法 POJ2420 HDU1109

    模拟退火算法来源于固体退火原理,更多的化学物理公式等等这里不再废话,我们直接这么来看 模拟退火算法简而言之就是一种暴力搜索算法,用来在一定概率下查找全局最优解 找的过程和固体退火原理有所联系,一般来讲 ...

  6. [ActionScript 3.0] 用TextField的方法getCharIndexAtPoint(x:Number, y:Number):int实现文字在固定范围内显示

    有时候我们遇到一行文字过多时必须固定文字的显示范围,但由于中英文所占字节数不一样,所以不能很好的用截取字符的方式去统一显示范围的大小,用TextField的getCharIndexAtPoint(x: ...

  7. linux awk 文本分析实例 [视频]

    实例: 点我打开哔哩哔哩 实战: 点我打开哔哩哔哩 以下是一个分享: ➜ log Time Now 16:23:35 > awk '/Installed/' yum.log* | awk -F ...

  8. Python 中当前位置以及目录文件遍历操作

    Python 中当前位置以及目录文件遍历操作 当前位置 print(os.path.dirname(__file__)) 其中 dirname 会选择目录(文件夹),"__file__&qu ...

  9. [译文]casperjs的API-clientutils模块

    casper提供了少量的客户端接口用来进行远程DOM环境注入,通过clientutils模块的ClientUtils类实例中的__utils__对象来执行: casper.evaluate(funct ...

  10. 2016级算法第四次上机-G.ModricWang的序列问题 II

    1021 ModricWang的序列问题II 思路 此题与上一题区别不是很大,只是增加了一个长度限制,当场通过的人数就少了很多. 大体解题过程与上一题相同.区别在于对\(f[]\) 的操作.没有长度限 ...