继续上篇的内容,本篇来学习下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. plsql连接oracle客户端(简单,实用方案)附件

    plsql 连接 oracle 需要在本地安装oracle客户端(附件中下载): 将文件下载下来后,放到任意目录,例如 D:\instantclient_10_2 修改 tnsnames.ora 文件 ...

  2. 单机版solr7.3

    搭建Solr7.3单机版 原博客  https://blog.csdn.net/yiqing_summer/article/details/79934584 1.Solr下载:http://mirro ...

  3. PT, BPT, VCM

    - VCM可以理解为BPT与PPM之间的MIS,并没有比BPT效果好很多 - BPT, VCM这类算法的主要作用是加快caustics的收敛,对indirect diffuse没有很明显的加速 - i ...

  4. 【QTP专题-优化】VBS脚本启动QTP并运行测试

    使用vbs脚本启动QTP并运行测试,startQTP.vbs '******************************************************************** ...

  5. python excel处理

    #!/usr/bin/python # data:2018/4/20 # user:fei # -*- coding: utf-8 -*- import json import sys import ...

  6. To 高一

    Linux 坑待填 Special Judge 什么是 Special Judge?有的题目会让你输出任意一个解即可AC,或者是让你输出部分答案能取得本测试点部分得分,或者是按照方案的优秀程度给你分, ...

  7. python 简单爬虫(beatifulsoup)

    ---恢复内容开始--- python爬虫学习从0开始 第一次学习了python语法,迫不及待的来开始python的项目.首先接触了爬虫,是一个简单爬虫.个人感觉python非常简洁,相比起java或 ...

  8. POJ1591 M*A*S*H (JAVA)

    这水题,真的坑 测试数据最后有空行,如果用sc.hasNextLine()判断,会RE 要改为sc.hasNext() 搞了我一上午,烦死 import java.util.*; public cla ...

  9. 获取dataGridView双击时判断双击的是下面的行,还是列头

    private void dataGridView1_DoubleClick(object sender, EventArgs e) { Point hit = this.dataGridView1. ...

  10. Python全栈-magedu-2018-笔记12

    第三章 - Python 内置数据结构 字典dict key-value键值对的数据的集合 可变的.无序的.key不重复 字典dict定义 初始化 d = dict() 或者 d = {} dict( ...