Gunicorn启动Django服务

使用 Gunicorn 来运行 Django 项目可以提升性能,特别是在生产环境中。Gunicorn 是一个 Python WSGI HTTP 服务器,适合用于在多个工作进程中运行 Python 的 Web 应用。以下是如何在本地使用 Gunicorn 启动 Django 项目的步骤:

步骤 1: 安装 Gunicorn

如果还没有安装 Gunicorn,你可以使用 pip 来安装它:

bash 复制代码
pip install gunicorn

步骤 2: 配置 Django 项目

确保你的 Django 项目已经正确配置,特别是有关 ALLOWED_HOSTS 中包括 localhost127.0.0.1,否则会出现 DisallowedHost 错误。

在你的 settings.py 中:

python 复制代码
ALLOWED_HOSTS = ['localhost', '127.0.0.1']

步骤 3: 运行 Gunicorn

在你的 Django 项目根目录下,运行以下命令启动 Gunicorn:

bash 复制代码
gunicorn <project_name>.wsgi:application
  • <project_name> 替换为你的 Django 项目的名称,即包含 wsgi.py 文件的那个目录。
  • gunicorn 命令会在默认的 8000 端口上运行你的应用。

配置选项

你可以指定工作进程的数量和绑定的 IP/端口,例如:

bash 复制代码
gunicorn <project_name>.wsgi:application --workers 3 --bind 0.0.0.0:8000
  • --workers 参数指定 Gunicorn 将启动多少个工作进程,一般将此设置为 CPU 核心数的 2-4 倍。
  • --bind 参数指定 Gunicorn 监听的地址和端口,0.0.0.0:8000 意味着监听来自任何网络接口的访问请求。

常见 Gunicorn 命令行选项

  • --workers:指定工作进程的数量。
  • --bind:指定监听的地址和端口。
  • --log-level:指定日志记录的级别(例如 debug, info, warning, error, critical)。
  • --access-logfile:指定访问日志的文件位置。
  • --error-logfile:指定错误日志的文件位置。

示例

例如,要在本地启动 Gunicorn,监听所有的网络接口,用 4 个工作进程,你可以运行:

bash 复制代码
gunicorn <project_name>.wsgi:application --workers 4 --bind 0.0.0.0:8000

这样你的 Django 项目就可以在本地通过 http://0.0.0.0:8000http://localhost:8000 访问。

注意事项

  • 在生产环境中,你可能需要使用反向代理服务器(如 Nginx)来处理静态文件和其他资源。
  • 在开发环境下,Django 的内置开发服务器更方便调试和测试,而 Gunicorn 更适合在生产环境下使用。
  • 确保所有依赖库都已安装并在正确的环境中运行。

通过这种方式运行 Django 项目,你可以更高效地利用服务器资源来处理更多并发请求。

相关推荐
小刘在重生~5 分钟前
Django|Excel 批量上传、Form/ModelForm 文件上传、Media 媒体文件配置
python·django·excel
小诗懂技术20 分钟前
【sqlite3数据库】一站式学会 增删改查 以及数据库c接口编程
数据库·sqlite
小刘在重生~25 分钟前
Django|Ajax 入门、JSON 返回、ECharts 图表、文件上传完整笔记
ajax·django·json
2601_9622838826 分钟前
Python 开发框架:Django、Flask和FastAPI
python·django·flask·fastapi·web开发
张人玉1 天前
基于 C# WinForms + .NET 8 + SQLite + TCP Socket 的多连接通讯调试工具——TCP通讯助手(TcpAssistant)
tcp/ip·sqlite·c#·.net
小刘在重生~1 天前
Django 全套入门笔记|安装、项目创建、ORM、Form、中间件、登录认证
笔记·中间件·django
一直C2 天前
Linux应用软件编程|嵌入式轻量级数据库SQLite3完整学习笔记(命令行+C语言API)
linux·sqlite
Discipline~Hai2 天前
Linux网络编程05-sqlite3数据库
linux·c语言·网络·数据库·sqlite·linux应用软件编程
wxwx_bscxy3222 天前
基于Python新冠疫情可视化分析系统的设计与实现
java·数据库·spring boot·python·微信小程序·sqlite
myy-learn3 天前
32 SQLITE数据库
jvm·数据库·sqlite