找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 20175|回复: 0

Gunicorn安装与Python后端服务搭建

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2026-8-11 16:03:50 | 显示全部楼层 |阅读模式
Gunicorn 安装与 Python 后端服务搭建指南

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

1. 安装 Gunicorn

使用 pip 安装
  1. pip install gunicorn
复制代码

验证安装
  1. gunicorn --version
复制代码

2. 准备 Python Web 应用

假设你有一个简单的 Flask 应用 (
  1. app.py
复制代码
):
  1. from flask import Flask
  2. app = Flask(__name__)
  3. @app.route('/')
  4. def hello():
  5.     return "Hello, World from Gunicorn!"
  6. # 这是 WSGI 应用入口点需要的(当直接运行此文件时)
  7. if __name__ == '__main__':
  8.     app.run()
复制代码

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

3. 使用 Gunicorn 运行应用

运行 Flask 应用
  1. gunicorn -w 4 -b 0.0.0.0:8000 app:app
复制代码

运行 Django 应用
  1. gunicorn --workers 4 --bind 0.0.0.0:8000 myproject.wsgi:application
复制代码

参数说明:

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


4. 生产环境配置建议

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

然后运行:
  1. gunicorn -c gunicorn.conf.py app:app
复制代码

日志配置
在配置文件中添加:
  1. accesslog = '/var/log/gunicorn/access.log'
  2. errorlog = '/var/log/gunicorn/error.log'
  3. loglevel = 'info'
复制代码

5. 与反向代理配合使用

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

Nginx 配置示例
  1. server {
  2.     listen 80;
  3.     server_name yourdomain.com;
  4.     location / {
  5.         proxy_pass http://127.0.0.1:8000;
  6.         proxy_set_header Host $host;
  7.         proxy_set_header X-Real-IP $remote_addr;
  8.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  9.     }
  10. }
复制代码

6. 使用 systemd 管理 Gunicorn

创建 systemd 服务文件 (
  1. /etc/systemd/system/gunicorn.service
复制代码
):
  1. [Unit]
  2. Description=Gunicorn instance to serve my Python app
  3. After=network.target
  4. [Service]
  5. User=your_user
  6. Group=www-data
  7. WorkingDirectory=/path/to/your/app
  8. Environment="PATH=/path/to/your/venv/bin"
  9. ExecStart=/path/to/your/venv/bin/gunicorn --workers 3 --bind unix:app.sock -m 007 app:app
  10. [Install]
  11. WantedBy=multi-user.target
复制代码

然后:
  1. sudo systemctl start gunicorn
  2. sudo systemctl enable gunicorn
复制代码

7. 性能优化建议

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


8. 常见问题解决

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


通过以上步骤,你应该能够成功部署基于 Gunicorn 的 Python 后端服务。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五云论坛 ( 黔ICP备2022001370号-1|贵公网安备52032102000798号 )

GMT+8, 2026-9-12 19:51 , Processed in 0.074981 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表