使用 Gunicorn 来运行 Django 项目可以提升性能,特别是在生产环境中。Gunicorn 是一个 Python WSGI HTTP 服务器,适合用于在多个工作进程中运行 Python 的 Web 应用。以下是如何在本地使用 Gunicorn 启动 Django 项目的步骤:
步骤 1: 安装 Gunicorn
如果还没有安装 Gunicorn,你可以使用 pip 来安装它:
bash
pip install gunicorn
步骤 2: 配置 Django 项目
确保你的 Django 项目已经正确配置,特别是有关 ALLOWED_HOSTS
中包括 localhost
或 127.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:8000
或 http://localhost:8000
访问。
注意事项
- 在生产环境中,你可能需要使用反向代理服务器(如 Nginx)来处理静态文件和其他资源。
- 在开发环境下,Django 的内置开发服务器更方便调试和测试,而 Gunicorn 更适合在生产环境下使用。
- 确保所有依赖库都已安装并在正确的环境中运行。
通过这种方式运行 Django 项目,你可以更高效地利用服务器资源来处理更多并发请求。