Gunicorn参数说明

部署运行你感兴趣的模型镜像

Gunicorn参数说明

一、前言

gunicorn是目前使用最广泛的高性能的Python WSGI(WEB Server Gateway interface)服务器,移植自Ruby的Unicorn项目,使用pre-fork worker模式,具有简单、易用、轻量级、低资源消耗和高性能等特点。

二、参数说明

2.1 启动参数说明

配置说明
-c CONFIG, --config=CONFIG指定配置文件
-b BIND, --bind=BIND绑定运行的主机加端口
-w INT, --workers INT用于处理工作进程的数量,整数,默认为1
-k STRTING, --worker-class STRTING要使用的工作模式,默认为sync异步,类型:sync, eventlet, gevent, tornado, gthread, gaiohttp
--threads INT处理请求的工作线程数,使用指定数量的线程运行每个worker。为正整数,默认为1
--worker-connections INT最大客户端并发数量,默认1000
--backlog int等待连接的最大数,默认2048
-p FILE, --pid FILE设置pid文件的文件名,如果不设置将不会创建pid文件
--access-logfile FILE日志文件路径
--access-logformat STRING日志格式,--access_log_format '%(h)s %(l)s %(u)s %(t)s'
--error-logfile FILE, --log-file FILE错误日志文件路径
--log-level LEVEL日志输出等级
--limit-request-line INT限制HTTP请求行的允许大小,默认4094。取值范围0~8190,此参数可以防止任何DDOS攻击
--limit-request-fields INT限制HTTP请求头字段的数量以防止DDOS攻击,与limit-request-field-size一起使用可以提高安全性。默认100,最大值32768
--limit-request-field-size INT限制HTTP请求中请求头的大小,默认8190。值是一个整数或者0,当该值为0时,表示将对请求头大小不做限制
-t INT, --timeout INT超过设置后工作将被杀掉并重新启动,默认30s,nginx默认60s
--reload在代码改变时自动重启,默认False
--daemon是否以守护进程启动,默认False
--chdir在加载应用程序之前切换目录
--graceful-timeout INT默认30,在超时(从接收到重启信号开始)之后仍然活着的工作将被强行杀死;一般默认
--keep-alive INT在keep-alive连接上等待请求的秒数,默认情况下值为2。一般设定在1~5秒之间
--spew打印服务器执行过的每一条语句,默认False。此选择为原子性的,即要么全部打印,要么全部不打印
--check-config显示当前的配置,默认False,即显示
-e ENV, --env ENV设置环境变量

2.2 配置文件示例

-c CONFIG, --config=CONFIG

配置文件方式
vim gunicorn.conf

# 并行进程数
workers = 4
 
# 指定每个工作的线程数
threads = 2
 
# 监听端口8000
bind = '127.0.0.1:8000'
 
# 守护进程,将进程交给supervisor管理
daemon = 'false'
 
# 工作模式协程
worker_class = 'gevent'
 
# 最大并发量
worker_connections = 2000
 
# 进程文件
pidfile = '/var/run/gunicorn.pid'
 
# 访问日志和错误日志
accesslog = '/var/log/gunicorn_acess.log'
errorlog = '/var/log/gunicorn_error.log'
 
# 日志级别
loglevel = 'debug'
启动
gunicorn -c gunicorn.conf app:app

2.3 日志格式说明

--access-logformat
识别码说明
h远程地址
l“-“
u用户名
t时间
r状态行,如:GET /test HTTP/1.1
m请求方法
U没有查询字符串的URL
q查询字符串
H协议
s状态码
Bresponse长度
bresponse长度(CLF格式)
f参考
a用户代理
T请求时间,单位为s
D请求时间,单位为ms
p进程id
{Header}i请求头
{Header}o相应头
{Variable}e环境变量
2.3.1 获取客户端真实IP
Nginx代理配置
proxy_set_header  Host              $host;
proxy_set_header  X-Real-IP         $remote_addr;
proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for;
proxy_pass        http://127.0.0.1:8080;
logformat
%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s" "%({X-Real-IP}i)s"

通过配置环境变量”X-Real-IP”获取客户端IP

参考文章

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think>好的,我现在需要处理用户关于Gunicorn的查询。首先,用户希望了解Gunicorn的基本介绍以及它的使用方法。根据提供的引用内容,我需要整理出Gunicorn的定义、主要特点、应用场景以及基本用法步骤。同时,还要确保回答符合系统级指令,比如使用正确的LaTeX格式,生成相关问题,并在适当的位置添加引用标识。 首先,我应该从引用中提取关键信息。引用[1]提到Gunicorn是一个高效的WSGI服务器,被广泛使用,适合部署Python应用。引用[3]补充了它基于Unix,支持多种框架,性能好且低内存占用。引用[4]提供了具体的命令行示例,比如启动Django和FastAPI应用的命令。引用[5]解释了WSGI的规范,这可能有助于说明Gunicorn的作用。 接下来,我需要组织这些信息。先介绍Gunicorn是什么,然后列出其特点,比如高性能、多框架兼容、配置灵活等。应用场景部分可以包括部署Django、Flask应用,结合Nginx使用,以及高并发环境。用法部分需要分步骤,比如安装、基本命令、配置选项和结合反向代理。每个部分都要引用对应的引用来源,例如提到性能时引用[3],命令行示例引用[4]。 然后,我需要检查是否符合格式要求。行内数学表达式不需要,但如果有的话要使用$...$。独立公式这里可能用不上,但需要确保LaTeX正确。回答使用中文,结构要清晰,分点说明。最后生成相关问题,如性能优化、配置方法、与uWSGI对比等,确保问题相关且基于引用内容。 可能需要注意的几点:确保所有引用标识正确对应,比如引用[1]、[3]、[4]、[5]在适当的位置。例如,在提到多框架兼容时,引用[3];在命令行示例时,引用[4]。同时,避免遗漏关键信息,比如Gunicorn的预派生模型和Worker类型,这在引用[3]和[4]中可能有涉及。 最后,生成的相关问题需要覆盖用户可能关心的其他方面,比如性能调优、配置参数、对比分析等,这样可以帮助用户进一步探索。整个过程需要保持回答自然,信息准确,结构清晰。</think>### Gunicorn Python WSGI服务器介绍及用法 #### 1. Gunicorn简介 Gunicorn(Green Unicorn)是一个高效的Python WSGI HTTP服务器,专为生产环境设计,支持多种Web框架(如Django、Flask、FastAPI)[^3]。它基于预派生(pre-fork)模型,通过多进程/协程处理并发请求,具有低内存占用和高性能的特点[^1]。 #### 2. 主要特点 - **高性能**:通过Worker进程/线程模型(如同步、异步、协程)优化并发处理能力[^4]。 - **多框架兼容**:无缝集成Django、Flask等遵循WSGI协议的框架。 - **配置灵活**:支持命令行参数或配置文件调整Worker数量、绑定端口等参数[^4]。 - **生产就绪**:推荐与Nginx等反向代理配合使用,增强静态文件处理和负载均衡能力[^5]。 #### 3. 应用场景 - 部署Django、Flask等传统同步Web应用。 - 结合异步框架(如FastAPI)使用Uvicorn Worker提升性能[^4]。 - 高并发场景下通过调整Worker类型(如`gevent`)优化资源利用率。 #### 4. 基本使用方法 1. **安装** ```bash pip install gunicorn ``` 2. **启动应用** - 部署Django: ```bash gunicorn myproject.wsgi:application -w 4 -b 127.0.0.1:8000 ``` 参数说明:`-w`指定Worker数量,`-b`绑定地址和端口。 - 部署FastAPI(需搭配Uvicorn Worker): ```bash gunicorn main:app --worker-class uvicorn.workers.UvicornWorker ``` 3. **常用配置选项** - `--workers`:Worker进程数(建议为$2 \times CPU核心数 + 1$)。 - `--bind`:监听地址和端口(如`0.0.0.0:8000`)。 - `--timeout`:请求超时时间(默认30秒)。 - `--log-level`:日志级别(如`debug`、`info`)。 4. **结合Nginx反向代理** ```nginx server { listen 80; server_name example.com; location / { proxy_pass http://127.0.0.1:8000; } } ``` 通过Nginx处理静态文件并转发动态请求到Gunicorn[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值