admin 发表于 2026-8-11 16:03:50

Gunicorn安装与Python后端服务搭建

Gunicorn 安装与 Python 后端服务搭建指南

Gunicorn (Green Unicorn) 是一个 Python WSGI HTTP 服务器,常用于部署 Python Web 应用。下面是如何安装 Gunicorn 并搭建 Python 后端服务的完整指南。

1. 安装 Gunicorn

使用 pip 安装
pip install gunicorn

验证安装
gunicorn --version

2. 准备 Python Web 应用

假设你有一个简单的 Flask 应用 (app.py):

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World from Gunicorn!"

# 这是 WSGI 应用入口点需要的(当直接运行此文件时)
if __name__ == '__main__':
    app.run()

或者对于 Django 项目,你需要确保有 wsgi.py 文件(Django 创建项目时会自动生成)。

3. 使用 Gunicorn 运行应用

运行 Flask 应用
gunicorn -w 4 -b 0.0.0.0:8000 app:app

运行 Django 应用
gunicorn --workers 4 --bind 0.0.0.0:8000 myproject.wsgi:application

参数说明:

[*]-w 或 --workers: 工作进程数(通常设为 CPU 核心数 × 2 + 1)
[*]-b 或 --bind: 绑定地址和端口
[*]对于 Flask: 模块名:应用实例名 (如 app:app)
[*]对于 Django: 项目名.wsgi:应用变量名


4. 生产环境配置建议

使用配置文件
创建 gunicorn.conf.py:
workers = 4
bind = '0.0.0.0:8000'
worker_class = 'sync'# 或 'gevent', 'gthread' 等
timeout = 30
keepalive = 5

然后运行:
gunicorn -c gunicorn.conf.py app:app

日志配置
在配置文件中添加:
accesslog = '/var/log/gunicorn/access.log'
errorlog = '/var/log/gunicorn/error.log'
loglevel = 'info'

5. 与反向代理配合使用

通常 Gunicorn 会与 Nginx 或 Apache 配合使用:

Nginx 配置示例
server {
    listen 80;
    server_name yourdomain.com;

    location / {
      proxy_pass http://127.0.0.1:8000;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

6. 使用 systemd 管理 Gunicorn

创建 systemd 服务文件 (/etc/systemd/system/gunicorn.service):


Description=Gunicorn instance to serve my Python app
After=network.target


User=your_user
Group=www-data
WorkingDirectory=/path/to/your/app
Environment="PATH=/path/to/your/venv/bin"
ExecStart=/path/to/your/venv/bin/gunicorn --workers 3 --bind unix:app.sock -m 007 app:app


WantedBy=multi-user.target

然后:
sudo systemctl start gunicorn
sudo systemctl enable gunicorn

7. 性能优化建议

[*]工作进程数: 通常设置为 CPU 核心数 × 2 + 1
[*]工作模式: 根据应用类型选择:
[*]sync (默认): 传统多进程
[*]gevent: 异步 I/O,适合 I/O 密集型应用
[*]gthread: 线程模式
[*]超时设置: 适当设置 timeout 防止工作进程挂起
[*]监控: 使用 gunicorn --stats 或集成监控工具


8. 常见问题解决

[*]端口占用: 确保端口未被其他服务占用
[*]权限问题: 确保运行用户有足够权限
[*]模块导入错误: 检查 Python 路径是否正确
[*]性能瓶颈: 考虑使用异步工作模式或增加工作进程


通过以上步骤,你应该能够成功部署基于 Gunicorn 的 Python 后端服务。
页: [1]
查看完整版本: Gunicorn安装与Python后端服务搭建