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 ...
随机推荐
- CentOS7登录到控制台后无网络
1.找到网卡配置文件 ll /etc/sysconfig/network-scripts/ | grep ifcfg-en 2.编辑配置文件开启系统启动时自动启动网络,并保存文件 vi /etc/sy ...
- Vue09 事件
1 事件语法 Vue 中的事件绑定可以使用 v-on 指令进行处理,可以把 v-on 绑定事件简写为 @. <div id="root"> <button @cl ...
- 线程基础知识11-CAS+自旋锁
1.CAS是什么(CompareAndSet) CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术.简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果 ...
- windows10环境下的RabbitMQ安装步骤
RabbitMQ是一个在AMQP协议标准基础上完整的,可复用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rab ...
- Seleniumweb自动化测试01
1.selenium简介 selenium是python的一个web第三方包,主要使用来做web自动化测试的 环境要求: ①.要有谷歌浏览器 ②.下载谷歌浏览器的驱动chromedriver(驱动我们 ...
- rpmbuild时为什么会出现空的debugsourcefiles.list?
错误: 空 %file 文件 /home/user/rpmbuild/BUILD/xxxx-0.1/debugsourcefiles.list 你看错误的里边有一个%file,这是使用spec文件构建 ...
- 开源免费3D CAD软件:FreeCAD
推荐:将 NSDT场景编辑器 加入你的3D开发工具链. FreeCAD是来自法国Matra Datavision公司的一款开源**3D CAD软件, 基于CAD / CAM / CAE几何模型核心,是 ...
- 跟着廖雪峰学python 006
递归函数 在函数内部调用自身本身 计算阶乘: def fact(n): if n == 1: return 1 return n * fact(n - 1) 注意:使用递归函数需要防止栈溢出. 在 ...
- ftpget
Usage: ftpget [OPTIONS] HOST [LOCAL_FILE] REMOTE_FILE ftpget -u user -p passwd ip LOCAL_FILE REMOTE_ ...
- .net core 3.1 上传大文件报错413 Payload Too Large
IIS配置如下 https://www.cnblogs.com/hallejuayahaha/p/12884347.html 代码里面新增 services.Configure<FormOpti ...