33 lines
932 B
Python
33 lines
932 B
Python
# Gunicorn 최적화 설정 (Bottleproof v2)
|
|
import multiprocessing
|
|
import os
|
|
|
|
# 1. 네트워크 설정
|
|
bind = "0.0.0.0:9099"
|
|
backlog = 2048
|
|
|
|
# 2. 프로세스 관리
|
|
# GeventWebSocketWorker: SocketIO(WebSocket) 지원을 위해 필수
|
|
worker_class = "geventwebsocket.gunicorn.workers.GeventWebSocketWorker"
|
|
workers = 1 # SocketIO 세션 일관성을 위해 1개 권장 (Redis message queue 미사용 시)
|
|
worker_connections = 1000
|
|
timeout = 600
|
|
keepalive = 5
|
|
|
|
# 3. PID 관리 (정밀한 프로세스 제어를 위해 추가)
|
|
pidfile = "data/gunicorn.pid"
|
|
|
|
# 4. 로깅 설정
|
|
# data/log 폴더 자동 생성 보장
|
|
log_dir = "data/log"
|
|
if not os.path.exists(log_dir):
|
|
os.makedirs(log_dir, exist_ok=True)
|
|
|
|
accesslog = os.path.join(log_dir, "gunicorn_access.log")
|
|
errorlog = os.path.join(log_dir, "gunicorn_error.log")
|
|
loglevel = "info"
|
|
capture_output = True
|
|
|
|
# 5. 개발 편의성
|
|
reload = False # 운영 환경에서는 False
|