rpm -q centos-release --- centos-release-7-5.1804.el7.centos.x86_64
yum install libunwind libicu
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
yum install rh-dotnet21 -y sudo yum update sudo yum install dotnet-sdk-2.1
dotnet --info
.NET Core SDK (reflecting any global.json):Version: 2.1.403Commit: 04e15494b6
Runtime Environment:OS Name: centosOS Version: 7OS Platform: LinuxRID: centos.7-x64Base Path: /usr/share/dotnet/sdk/2.1.403/
Host (useful for support):Version: 2.1.5Commit: 290303f510
.NET Core SDKs installed:2.1.403 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:Microsoft.AspNetCore.All 2.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]Microsoft.AspNetCore.App 2.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]Microsoft.NETCore.App 2.1.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:https://aka.ms/dotnet-download
vsftpd -v
yum -y install vsftpd
vi /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd.service
systemctl status vsftpd.service
useradd webroot passwd abcd-1234
sudo yum install epel-release
sudo yum install nginx
sudo systemctl start nginx
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload
firewall-cmd --zone=public --add-port=80/tcp --permanent systemctl restart firewalld
systemctl enable nginx #设置开机启动
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 $host; proxy_cache_bypass $http_upgrade; } }
yum install policycoreutils-python sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx sudo semodule -i mynginx.pp
再次访问便可。html
Supervisor 是用 Python 开发的 Linux/Unix 系统下的一个进程管理工具。它可使进程脱离终端,变为后台守护进程(daemon)。实时监控进程状态,异常退出时能自动重启。python
Supervisor 不支持任何版本的 Window 系统;仅支持在 Python2.4 或更高版本,但不能在任何版本的 Python 3 下工做。nginx
其主要组成部分:git
supervisord:Supervisor 的守护进程服务,用于接收进程管理命令;github
supervisorctl:Supervisor 命令行工具,用于和守护进程通讯,发送管理进程的指令;web
Web Server:Web 端进程管理工具,提供与 supervisorctl 相似功能,管理进程;json
XML-RPC Interface:提供 XML-RPC 接口,请参阅 XML-RPC API文档。centos
联网状态下,官方推荐首选安装方法是使用easy_install
,它是setuptools(Python 包管理工具)的一个功能。因此先执行以下命令安装 setuptools:api
yum install python-setuptools
请更换root
用户,执行以下命令安装 Supervisor:浏览器
easy_install supervisor
运行supervisord
服务的时候,须要指定 Supervisor 配置文件,若是没有显示指定,默认会从如下目录中加载:
$CWD/supervisord.conf #$CWD表示运行 supervisord 程序的目录 $CWD/etc/supervisord.conf /etc/supervisord.conf /etc/supervisor/supervisord.conf (since Supervisor 3.3.0) ../etc/supervisord.conf (Relative to the executable) ../supervisord.conf (Relative to the executable)
因此,先经过以下命令建立目录,以便让 Supervisor 成功加载默认配置:
mkdir /etc/supervisor
加载目录有了,而后经过echo_supervisord_conf
程序(用来生成初始配置文件)来初始化一个配置文件:
echo_supervisord_conf > /etc/supervisor/supervisord.conf
打开supervisord.conf
文件,能够看到echo_supervisord_conf
已经帮咱们初始化好了一个样例配置,咱们须要简单修改一下。
编辑配置文件
vi /etc/supervisor/supervisord.conf
尾部找到以下文本片断:
;[include] ;files = relative/directory/*.ini
改成:
[include] files = conf.d/*.conf
即,把前面的分号去掉便可并设置/etc/supervisor/conf.d
为 Supervisor 进程配置文件加载目录。
这样,Supervisor 会自动加载该目录下.conf
后缀的文件做为共同服务配置。Supervisor 管理的每一个进程单独写一个配置文件放在该目录下,supervisord.conf
配置文件中保留公共配置。
建立进程配置加载目录:
mkdir /etc/supervisor/conf.d
接下来就须要为咱们已经部署的 ASP .NET Core 程序的宿主进程建立一个进程配置文件test.conf
,保存并上传到/etc/supervisor/conf.d
目录。
或者经过vi 进行建立,注意该配置文件最好与站点名称保持一致。
[program:Test] ;自定义进程名称 command=dotnet Web.dll ;程序启动命令 directory=/home/webroot/test ;命令执行的目录 autostart=true ;在Supervisord启动时,程序是否启动 autorestart=true ;程序退出后自动重启 startretries=5 ;启动失败自动重试次数,默认是3 startsecs=1 ;自动重启间隔 user=root ;设置启动进程的用户,默认是root priority=999 ;进程启动优先级,默认999,值小的优先启动 stderr_logfile=/var/log/test.err.log ;标准错误日志 stdout_logfile=/var/log/test.out.log ;标准输出日志 environment=ASPNETCORE_ENVIRONMENT=Production ;进程环境变量 stopsignal=INT ;请求中止时用来杀死程序的信号
启动 Supervisor 服务,命令以下:
supervisord -c /etc/supervisor/supervisord.conf
supervisorctl -c /etc/supervisor/supervisord.conf
supervisorctl -c /etc/supervisor/supervisord.conf reload
首先为 Supervisor 新建一个启动服务脚本supervisor.service
,而后保存并上传至服务器/usr/lib/systemd/system/
目录。
脚本内容以下:
# supervisord service for systemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [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
设置开启启动:
systemctl enable supervisor
验证是否成功
systemctl is-enabled supervisor
若是输出enabled
则表示设置成功,也可重启服务器验证。
Supervisor 服务启动后,受其管理的进程会在后台运行。能够经过supervisorctl
客户端管理进程。
输入以下命令进入supervisorctl
交互终端,按Ctrl
+C
键退出:
supervisorctl
输入help
输入help ****
查询详细命令,好比输入help stop
supervisor的web管理端
若是须要在远程访问,能够设置为本机的ip,192.168.226.129:9001
更新配置
supervisorctl update
使其生效
supervisorctl reload
这时能够在本地浏览了
发现并无设置的test的进程,多是由于test.conf没有其做用的缘由,经过查看配置文件发现supervisor的配置文件[include]目录路径写错了,修改成下面的目录
更新,从新加载配置
刷新页面
到此我们的asp.net core 站点基本配置成功了。固然这里你也能够添加nginx的监控,步骤同上,再也不说明了。
Esofar's blog https://www.cnblogs.com/esofar/p/8043792.html