Files
aitsc/gunicorn.conf.py
2025-09-07 23:05:30 +08:00

75 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
"""
Gunicorn配置文件
用于生产环境部署
"""
import os
import multiprocessing
# 服务器配置
bind = "0.0.0.0:5002"
workers = multiprocessing.cpu_count() * 2 + 1
worker_class = "sync"
worker_connections = 1000
max_requests = 1000
max_requests_jitter = 100
# 超时配置
timeout = 120 # 增加超时时间到120秒适应API调用
keepalive = 2
graceful_timeout = 60 # 增加优雅关闭时间
# 日志配置
accesslog = "logs/gunicorn_access.log"
errorlog = "logs/gunicorn_error.log"
loglevel = "info"
access_log_format = '%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s" %(D)s'
# 进程配置
preload_app = True
daemon = False
pidfile = "logs/gunicorn.pid"
user = None
group = None
tmp_upload_dir = None
# 安全配置
limit_request_line = 4094
limit_request_fields = 100
limit_request_field_size = 8190
# 环境变量
raw_env = [
"FLASK_ENV=production",
]
# 钩子函数
def on_starting(server):
"""服务器启动时的钩子"""
server.log.info("Gunicorn服务器启动中...")
def on_reload(server):
"""重载时的钩子"""
server.log.info("Gunicorn服务器重载中...")
def worker_int(worker):
"""工作进程中断时的钩子"""
worker.log.info("工作进程 %s 被中断", worker.pid)
def pre_fork(server, worker):
"""fork工作进程前的钩子"""
server.log.info("工作进程 %s 即将启动", worker.pid)
def post_fork(server, worker):
"""fork工作进程后的钩子"""
server.log.info("工作进程 %s 已启动", worker.pid)
def post_worker_init(worker):
"""工作进程初始化后的钩子"""
worker.log.info("工作进程 %s 初始化完成", worker.pid)
def worker_abort(worker):
"""工作进程异常退出时的钩子"""
worker.log.info("工作进程 %s 异常退出", worker.pid)