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负载均衡集群搭建.....
CentOS7部署.Net Core2.0站点(中)的更多相关文章
- CentOS7部署.Net Core2.0站点(上)
其实类似的教程网上已经有很多了,之所以要写,是应为发现在使用最新的centos7和.netcore2.1版本时还是遇到了不少坑,所以记录下,以后希望大家能少走弯路. 一.安装CentOS7 我是用虚拟 ...
- .NET Core2.0 MVC中使用EF访问数据
使用环境:Win7+VS2017 一.新建一个.NET Core2.0的MVC项目 二.使用Nuget添加EF的依赖 输入命令:Install-Package Microsoft.EntityFram ...
- Centos7.2部署.Net Core2.0 WebApi
部署前准备 1.VisualStudio2017+.netcore2.0SDK 2.Centos7.2 3.SecureCRT,Xftp(根据自己喜好) 创建WebApi项目 修改Program.cs ...
- CentOS7部署Dotnet Core2.1
前言 笔者在毫无Linux部署.net core的经验下,第一次用了15分钟完成部署,第二次在生产环境用了5分钟.下文将说明如何在CentOS7下完成.NetCore2.1的部署,包括如何创建ASP. ...
- DotNet跨平台 - docker部署.net core2.0项目
参考文档: https://docs.docker.com/install/linux/docker-ce/centos/ http://www.dockerinfo.net/document htt ...
- Centos7 部署.net core2.1 详细步骤
安装dotnet sdk(添加产品秘钥与yum源) 添加yum源:sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages ...
- CentOS7部署HDP3.1.0.0
Apache Ambari是一个基于Web的支持Apache Hadoop集群的供应.管理和监控的开源工具,Ambari已支持大多数Hadoop组件,包括HDFS.MapReduce.Hive.Pig ...
- 云服务器 Centos7 部署 Elasticsearch 8.0 + Kibana 8.0 指南
文章转载自:https://mp.weixin.qq.com/s/iPfh9Mkwxf5lieiqt6ltxQ 服务器是命令行模式登录,没法以浏览器方式访问.而官方推荐的快捷部署方式,在kibana ...
- centos7部署.net core2.1
1.centos 7.0及以上服务器 2..NET SDK 安装 2.1 安装 https://www.microsoft.com/net/download/linux-package-manager ...
随机推荐
- Python短路原则
1.括号内逻辑先执行 2.and优先级大于or 3.and一假为假 4.or一真为真 and:如果左边为假,返回左边值.如果左边不为假,返回右边值. or:如果左边为真,返回左边值.如果左边不为真,返 ...
- C# Winform下一个热插拔的MIS/MRP/ERP框架15(窗体基类场景1)
最基础的窗体基类其实是通过应用场景反推的结构. 以下是场景一: 单表应用,普通的数据,比如单位/颜色/特殊字典等使用者少的,无需过多控制的可以使用一个数据表格来管理. 和Excel表格差不多,批量修改 ...
- php中的list()用法中要注意的地方
php中list()函数是用数组对一列值进行赋值, 该函数只用于数字索引的数组,且假定数字索引从0开始.(这句话很重要,是从索引0开始为变量赋值,如果对应的数字索引不存在,则对应位的变量也为空值.) ...
- [ActionScript 3.0] 动态改变影片剪辑的颜色
flash.geom.ColorTransform 可使用 ColorTransform 类调整显示对象的颜色值.可以将颜色调整或颜色转换应用于所有四种通道:红色.绿色.蓝色和 Alpha 透明度. ...
- 北航软院2014级C#期末考试部分考题解答
博主注:本渣渣水平有限,文中若有不对的地方敬请指出,谢谢. 本文中大部分图片来自老师的PPT,感谢邵老师,想要的可以点击右边QQ联系我:) 一.选择 6.Which of the following ...
- js中的substr和substring区别
js中的substr和substring区别 Substring: 该方法可以有一个参数也可以有两个参数. (1) 一个参数: 示例: var str=“Olive”: str.substring( ...
- bootstrap table 超链接的添加 <a>标签
后台管理页面采用 bootstrap table 页面样式: 现在需要在操作中添加一个<a>标签,跳转到不同的页面 { title: '操作', align: 'center', form ...
- java 使用idea将工程打成jar并创建成exe文件类型执行
https://blog.csdn.net/weixin_38310965/article/details/80392767
- [软件工程]项目选择与NABCD模型分析
项目 内容 这个作业属于哪个课程 2019春季计算机学院软件工程(罗杰) 这个作业的要求在哪里 团队项目选择 这课程的目标是 以实践形式熟悉软件开发流程,团队开发,合作学习 本次作业对课程的帮助是 确 ...
- 自动更新R软件
利用R语言命令自动更新R语言软件的版本. install.packages("installr") library(installr) updateR()
