supervisor+gunicorn+uvicorn部署fastapi项目
一、编写一个项目
本项目是在虚拟环境下的:
先启动虚拟环境:source .venv/bin/activate。(创建虚拟环境自己去找)

项目用于演示,所以非常简单,
在虚拟环境中安装需要的第三方库:fastapi, uvicorn
main.py:
# coding=utf-8 import uvicorn
from fastapi import FastAPI app = FastAPI() @app.get("/")
async def root():
return {"message": "Hello World"} if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
在这里先试着启动一下项目,确保没有问题
然后我么继续
二、使用gunicorn运行项目(只支持Linux,不知win):
在虚拟环境中安装gunicorn: pip install gunicorn
编写配置文件,这里的配置文件必须未py的文件
gunicorn.py:
# gunicorn.py
# 并行工作进程数
workers = 1
# 指定每个工作者的线程数
threads = 2
# 监听内网端口5000
bind = '0.0.0.0:8000'
# 设置守护进程,将进程交给supervisor管理
daemon = 'false'
# 工作模式协程
worker_class = 'uvicorn.workers.UvicornWorker'
# 设置最大并发量
worker_connections = 2000
# 设置进程文件目录
pidfile = '/var/run/gunicorn.pid'
# 设置访问日志和错误信息日志路径
accesslog = '/var/log/gunicorn_acess.log'
errorlog = '/var/log/gunicorn_error.log'
# 设置日志记录水平
loglevel = 'info'
然后试着运行一下:
注意用户权限,建议root用户,免得各种问题,我是ubuntu,坑,之前centos7就没有这么些问题
gunicorn -c gunicorn.py main:app
不出意外的话,这里是成功的。可以在你定义的log下进行查看
三、使用supervisor管理进程
安装supervisor: Ubuntu: sudo apt install supervisord
启动supervisor服务:sudo supervisord

可以看到启动的时候一推提示:-c指定配置文件按,我不想指定,让他读取默认的配置文件,默认的配置文件中包含了conf.d下的所有配置
所以我们的项目关于supervisor的配置会放在/etc/superv/conf.d目录下
编写改项目的supervisor配置文件:
进入supervisor的配置文件按下:/etc/supervisor/conf.d
新建配置文件:testOneFastapi.conf
[program:testOneFast] # program固定格式后边的你根据自己项目自定义
directory=/home/iriot/python_dir/testOneChaose # 项目根路径
command=/home/iriot/python_dir/testOneChaose/.venv/bin/gunicorn -c gunicorn.py main:app #注意一定是要从你的虚拟环境下运行gunicorn命令
autostart=true
stdout_syslog=true
stdout_logfile=/home/iriot/python_dir/logs
stdout_logfile_maxbytes=50MB
stderr_syslog=true
stderr_logfile=/home/iriot/python_dir/logs
stderr_logfile_maxbytes=50MB
保存文件后执行更新操作:supervisorctl update

可以看到你的项目进程添加进去了
然后可以试着访问自己的项目了:

supervisor+gunicorn+uvicorn部署fastapi项目的更多相关文章
- Flask+Nginx+Supervisor+Gunicorn+HTTPS部署教程(CentOs)
写在前面 之前的文章中,我们详细讲述了怎样安装 Nginx,Python,Supervisor,Gunicorn,HTTPS.经本人多次测试是完全可以跑通的,那么本篇将介绍怎样将这些组合起来运行一个H ...
- CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目
原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...
- django+nginx+supervisor+gunicorn+gevent 网站部署
django+nginx+supervisor+gunicorn+gevent 网站部署 django,nginx,supervisor,gunicorn,gevent这几个都是在本领域大名鼎鼎的软件 ...
- 记基于docker+gunicorn部署sanic项目遇到的很多很多坑
前言: 最近有个项目需要上线,是python中sanic网络异步框架写的,并且要求使用docker+nginx来部署项目实现负载均衡,于是乎百度了sanic项目部署,基本上都是基于docker+gun ...
- Nginx 和 Gunicorn 部署 Django项目
目录 Nginx 和 Gunicorn 部署 Django项目 配置Nginx 安装配置Gunicorn 通过命令行直接启动 Gunicorn 与 uwsgi 的区别,用哪个好呢 Gunicorn u ...
- nginx+gunicorn部署Django项目
实际采用的nginx.conf文件内容: server { charset utf-8; listen 80; server_name ip; access_log /webapps/project/ ...
- docker中部署django项目~~Dockfile方式和compose方式
1. 背景: 本机win10上,后端django框架代码与前端vue框架代码联调通过. 2. 目的: 在centos7系统服务器上使用docker容器部署该项目. 3. 方案一:仅使用基 ...
- Django + Gunicorn + Nginx 部署 Ubuntu 服务器
Django + Gunicorn + Nginx 部署服务器 获取腾讯云 root权限 本人的服务器使用的是腾讯云,腾讯云默认是没有开放 root 用户的,我们来创建 root 用户. 创建 roo ...
- 使用Nginx+uWSGI部署Django项目
1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi l ...
- MyEclipse部署web项目到Tomcat出现An internal error occurred during: "Launching on Tomcat 7.x"的问题
如果出现了上述的错误按照如下的3个步骤解决:1.首先关闭MyEclipse工作空间.2.然后删除工作空间下的文件."MyEclipse10\workspace.metadata.plugin ...
随机推荐
- T02 ExtractSubject 项目开发总结
公纵号: 皮豪 博客:www.kbug.cn 邮箱:pphboy@qq.com 前言 看来已经是一种习惯,每次寒假都会开发一个项目出来.本次项目使用的是Qt GUI,语言是C++.不得不说,在业务上写 ...
- window系统增强优化工具
计算机系统优化的作用很多,它可以清理WINDOWS临时文件夹中的临时文件,释放硬盘空间:可以清理注册表里的垃圾文件,减少系统错误的产生:它还能加快开机速度,阻止一些程序开机自动执行:还可以加快上网和关 ...
- 构建api gateway之 openresty 中如何使用 wasm
openresty 中如何使用 wasm WASM 是什么? WebAssembly是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果.它设计的目的不是为了手写代码而是为诸如C.C++ ...
- Elasticsearch Mapping类型修改
背景 通常数据库进行分库分表后,目前比较常规的作法,是通过将数据异构到Elasticsearch来提供分页列表查询服务:在创建Elasticsearch索引时,基本都是会参考目前的业务需求.关系数据库 ...
- SPA路由实现的基本原理
1. SPA路由实现的基本原理 前端单页应用实现路由的策略有两种,分别是 基于hash 和 基于 History API 基于hash 通过将一个 URL path 用 # Hash 符号拆分.- 浏 ...
- [EULAR文摘] 超声腱鞘炎对RA早期诊断的价值
超声腱鞘炎对RA早期诊断的价值 Sahbudin I, et al. EULAR 2015. Present ID: OP0015. 背景:为了预测早期未分化疾病发展为类风湿关节炎(RA), EULA ...
- 基于GLUT的PyOpenGL的使用
1. GLUT概述 OpenGL只是一种规范,不仅语言无关,而且平台无关.规范只字未提获得和管理OpenGL上下文相关的内容,而是将这些作为细节交给底层的窗口系统.出于同样的原因,OpenGL纯粹专注 ...
- PostgreSQL cache lookup failed for type XXXX 错误
一.错误信息 执行 pg_dump 命令备份,提示 cache lookup failed for type- 错误. 二.错误分析 根据上面日志中的提示信息,可以确定 222222 这个 ID 号, ...
- K8S 部署es,搭建efk日志收集系统
1.k8s部署es集群:https://www.jianshu.com/p/e490f7597539 2.k8s搭建efk日志收集系统:https://www.cnblogs.com/minseo/p ...
- FTP调优
最近在解决客户的问题时接触到了一些FTP的问题,自己在使用过程中发现了很多问题,所以这里总结了一些调优的办法: 服务:vsftp 非常安全文件传输 配置文件:/etc/vsftpd/vsftpd.co ...