Supervisor

使用Nginx+Gunicorn+Daphne+supervisor部署Django服务

别等时光非礼了梦想. 提交于 2020-08-05 20:10:12
1.准备 1.1 创建zanhu用户组 groupadd zanhu 1.2 创建zanhu用户并加入zanhu用户组内 useradd -m zanhu -g zanhu 1.3 设置密码 passwd zanhu 1.4 给zanhu用户授予执行权限 chmod +x /home/zanhu 1.5 安装系统所需依赖 yum install python-devel zlib-devel mysql-devel libffi-devel bzip2-devel openssl-devel java gcc wget 由于之前使用rpm安装过mysql8.0,通过 rpm -qa|grep mysql 命令查看已经包含mysql-community-devel所以不需要安装mysql-devel 1.6 安装部署所需的服务 yum install -y nginx redis supervisor 1.7 设置开机启动 systemctl enable redis nginx supervisord 1.8 切换到zanhu用户 su - zanhu 1.9 通过xftp将Django项目拷贝至/home/zanhu目录下,注意修改项目的属主,属组为zanhu chown zanhu:zanhu -R zanhu/ 1.10 在项目目录下创建logs目录,用来存放gunicorn

uwsgi nginx 部署 flask

血红的双手。 提交于 2020-07-28 09:35:25
当前项目目录 . ├── app ├── app.log ├── app.py ├── config.py ├── manager.py ├── Pipfile ├── Pipfile.lock ├── __pycache__ │ ├── app.cpython-36.pyc │ ├── app.cpython-37.pyc │ └── view.cpython-36.pyc ├── uwsgi.ini └── uwsgi.pid app.py: from flask import Flask, request from flask_restful import Resource, Api import logging import json app = Flask(__name__) app.config['JSON_AS_ASCII'] = False handler = logging.FileHandler('app.log', encoding='UTF-8') logging_format = logging.Formatter( '%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(lineno)s - %(message)s') handler.setFormatter(logging

Supervisor使用详解

。_饼干妹妹 提交于 2020-07-28 08:28:06
一、supervisor简介 Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。 注:本文以centos7为例,supervisor版本3.4.0。 二、supervisor安装 配置好yum源后,可以直接安装 yum install supervisor Debian/Ubuntu可通过apt安装 apt-get install supervisor pip安装 pip install supervisor easy_install安装 easy_install supervisor 三、supervisor使用 supervisor配置文件: /etc/supervisord.conf 注:supervisor的配置文件默认是不全的,不过在大部分默认的情况下

Caddy一个强大的web服务器和代理服务器

牧云@^-^@ 提交于 2020-07-23 23:44:34
什么是Caddy Caddy是一个强大的、可扩展的平台,可以为您的站点、服务和应用程序提供服务,它是用Go编写的。虽然大多数人使用它作为web服务器或代理,但其实他支持更多的功能: Caddy是唯一自动且默认使用HTTPS的web服务器。 web服务器 反向代理 sidecar代理 负载均衡器 API网关 ingress控制器 系统管理器 进程supervisor 任务调度器 (任何长时间运行的进程long-running process) 简单的配置与Caddyfile 强大的配置和它的原生JSON配置 使用JSON API进行动态配置 如果不喜欢JSON,配置适配器 默认自动HTTPS,让我们加密公共站点,内部名称和ip的全托管本地CA,可以与集群中的其他Caddy实例协调吗 避免其他服务器由于TLS/OCSP/与证书相关的问题而宕机时 HTTP/1.1、HTTP/2和实验性HTTP/3支持 高度可扩展的模块化架构让Caddy做任何事情都不会臃肿 在任何没有外部依赖的地方运行(甚至libc也不行) 用Go编写,一种比其他服务器具有更高内存安全保证的语言 简化的外部依赖 Caddy简化了你的基础设施。它负责TLS证书更新、OCSP绑定、静态文件服务、反向代理、Kubernetes访问等。 它的模块化架构意味着您可以使用为任何平台编译的单个静态二进制文件做更多的事情。

【Core】.NET Core 部署在Linux

折月煮酒 提交于 2020-05-09 15:56:37
一、安装.NET Core SDK 在CentOS上 1.右键打开命令行 2.为了安装.NET,需要注册微软签名密钥和添加微软相关的支持。这个操作每台机器只能做一次。 Add the dotnet product feed(其实就是向微软提交投名状,表示我这台服务器要用core),注意:先检测下是否能联网; 打开命令行,执行以下命令: sudo rpm --import https: // packages.microsoft.com/keys/microsoft.asc sudo sh -c ' echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo ' 3.安装 .NET Core SDK 命令一: sudo yum update   需要一段时间,而且会提示是否继续,输入y然后回车。   如果遇到提示another

我写了一份操作系统词典送给你!

别来无恙 提交于 2020-05-08 08:15:58
https://mp.weixin.qq.com/s/Y6pbWjBZxb6GkazHLB2YyA 我写了一份操作系统词典送给你! cxuan 码农有道 1周前 操作系统(Operating System,OS):是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操作系统需要处理管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。 shell:它是一个程序,可从键盘获取命令并将其提供给操作系统以执行。在过去,它是类似 Unix 的系统上唯一可用的用户界面。如今,除了命令行界面(CLI)外,我们还具有图形用户界面(GUI)。 GUI (Graphical User Interface):是一种用户界面,允许用户通过图形图标和音频指示符与电子设备进行交互。 内核模式(kernel mode): 通常也被称为 超级模式(supervisor mode),在内核模式下,正在执行的代码具有对底层硬件的完整且不受限制的访问。它可以执行任何 CPU 指令并引用任何内存地址。内核模式通常保留给操作系统的最低级别,最受信任的功能。内核模式下的崩溃是灾难性的;他们将停止整个计算机。超级用户模式是计算机开机时选择的自动模式。 用户模式(user node):当操作系统运行用户应用程序

VMware vSphere 7.0 with Kubernetes 架构

时光总嘲笑我的痴心妄想 提交于 2020-05-06 14:24:39
在 vSphere 集群上启用vSphere with Kubernetes后,它会在 Hypervisor 层内创建一个 Kubernetes 控制层面。此层包含支持在 ESXi 中运行 Kubernetes 工作负载的特定对象。 图 2-1. vSphere with Kubernetes常规架构 为 vSphere with Kubernetes启用的集群称为Supervisor 集群。它在 SDDC 层上运行,包含用于计算的 ESXi、用于网络连接的 NSX-T Data Center 以及 vSAN 或其他共享存储解决方案。共享存储用于 vSphere Pod、Supervisor 集群中运行的虚拟机以及Tanzu Kubernetes 集群中的 Pod 的持久卷。创建 Supervisor 集群后,作为 vSphere 管理员,您可以在 Supervisor 集群中创建名为 Supervisor 命名空间的命名空间。作为 DevOps 工程师,您可以运行由 vSphere Pod中运行的容器组成的工作负载,并创建 Tanzu Kubernetes 集群。 图 2-2. Supervisor 集群的架构 Kubernetes 控制层面虚拟机。在属于Supervisor 集群的主机上共创建了三个 Kubernetes 控制层面虚拟机。三个控制平面虚拟机已负载平衡

Akka Stop Kill PoisonPill 区别

笑着哭i 提交于 2020-05-04 09:36:54
Akka Stop Kill PoisonPill 区别 Both stop and PoisonPill will terminate the actor and stop the message queue. They will cause the actor to cease processing messages, send a stop call to all its children, wait for them to terminate, then call its postStop hook. All further messages are sent to the dead letters mailbox. The difference is in which messages get processed before this sequence starts. In the case of the stop call, the message currently being processed is completed first, with all others discarded. When sending a PoisonPill , this is simply another message in the queue, so the sequence

Nginx的负载均衡和项目部署

与世无争的帅哥 提交于 2020-05-03 23:49:51
nginx的作用 Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。 Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成 集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中, 实现负载的分发。那么会大大提升系统的吞吐率、请求性能、高容灾 Nginx要实现负载均衡需要用到proxy_pass代理模块配置 Nginx负载均衡与Nginx代理不同地方在于 Nginx代理仅代理一台服务器,而Nginx负载均衡则是将客户端请求代理转发至一组upstream虚拟服务池 Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。 upstream配置 在nginx.conf > http 区域中 upstream django { server 10.0 . 0.10 : 8000 ; server 10.0 . 0.11 : 9000 ; } 在nginx.conf > http 区域 > server区域 > location配置中 添加proxy_pass location / { root html; index index

Linux 操作系统 — 操作系统的本质

做~自己de王妃 提交于 2020-05-03 14:33:15
目录 文章目录 目录 操作系统的起源 操作系统和高级编程语言使硬件抽象化 操作系统的起源 在操作系统尚不存在的年代,人们通过各种按钮来控制计算机,这一过程非常麻烦。于是,有人开发出了仅仅具有加载和运行功能的监控程序(Supervisor),这就是操作系统的原型。 通过监控程序,程序员可以根据需要将各种应用程序加载到内存中运行。虽然仍旧比较麻烦,但现在开发的工作量得到了很大的缓解。 随着时代的发展,人们在使用监控程序编写程序的过程中发现了很多程序都具有公共的部分。例如:通过键盘进行文字输入,显示器进行数据展示等。如果每编写一个新的应用程序都需要进行相同重复工作的话,那真是太浪费时间了。因此,部分可重用的程序就被追加到了监控程序中。操作系统的原型就是这样诞生的。 逐渐的,人们又发现有更多的应用程序可以追加到监控程序中,比如:硬件控制程序,编程语言处理器(汇编、编译、解析)以及各种应用程序等,结果就形成了和现在差异不大的操作系统,也就是说,其实操作系统是多个程序的集合体。 操作系统和高级编程语言使硬件抽象化 通过使用操作系统提供的系统调用,程序员不必直接编写控制硬件的程序,而且,通过使用高级编程语言,有时也无需考虑系统调用的存在,系统调用往往是自动触发的,操作系统和高级编程语言能够使硬件抽象化,并诞生了程序员这一职业。 # include <stdio.h> void main ( )