在本节中,我们将学习如何使用 Gunicorn
作为 Django 应用的 WSGI 服务器,并使用 Nginx
作为反向代理服务器。通过这个步骤,你可以把 Django 应用部署到生产环境中。
安装 Gunicorn
首先,你需要安装 Gunicorn
。在你的 Django 项目的根目录下,运行以下命令:
1 | pip install gunicorn |
你可以通过 requirements.txt
文件来管理依赖,将 gunicorn
添加到文件中:
1 | gunicorn==20.1.0 |
启动 Gunicorn
一旦安装完成,我们可以通过 Gunicorn
启动 Django 应用。假设你的 Django 项目名为 myproject
,并且 wsgi.py
文件在 myproject
目录下。你可以使用以下命令启动 Gunicorn:
1 | gunicorn myproject.wsgi:application --bind 0.0.0.0:8000 |
这里的 0.0.0.0:8000
表示 Gunicorn 将监听所有可用的网络接口的 8000 端口。
安装 Nginx
接下来,我们需要安装 Nginx
。在 Ubuntu 上,你可以用以下命令进行安装:
1 | sudo apt update |
安装完成后,确保 Nginx
服务已经启动:
1 | sudo systemctl start nginx |
配置 Nginx
在 Nginx 中,我们需要创建一个配置文件来设置反向代理,将请求转发到 Gunicorn。请在 /etc/nginx/sites-available/
目录下创建一个新的配置文件,例如 myproject
:
1 | sudo nano /etc/nginx/sites-available/myproject |
将以下内容粘贴到文件中:
1 | server { |
请注意,将 /path/to/your/project
替换为你的实际项目路径,将 your_domain_or_IP
替换为你的域名或服务器 IP 地址。
启用 Nginx 配置
现在,创建一个符号链接到 sites-enabled
目录,以启用这个 Nginx 配置:
1 | sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled |
接下来,测试 Nginx 的配置是否正确:
1 | sudo nginx -t |
如果一切正常,你可以重启 Nginx:
1 | sudo systemctl restart nginx |
配置静态文件
在 Django 项目中,你可能还需要使用 collectstatic
命令将静态文件收集到 Nginx 可以服务的目录中。确保已经在 settings.py
中配置了 STATIC_URL
和 STATIC_ROOT
:
1 | STATIC_URL = '/static/' |
然后运行以下命令:
1 | python manage.py collectstatic |
测试部署
现在,你已完成 Gunicorn
和 Nginx
的配置。你可以在浏览器中访问你的域名或 IP 地址来查看你的 Django 项目。如果一切顺利,你应该可以看到你的 Django 应用正常运行。
结束语
到此为止,你已经成功将 Django 应用通过 Gunicorn
和 Nginx
部署到生产环境。这种配置可以处理大量并发请求,确保你的应用运行稳定。