首页开发教程Gunicorn+Nginx部署Django应用图文教程

Gunicorn+Nginx部署Django应用图文教程

2026-01-01 45

作为一个高级的Python Web应用框架,Django可以加快使用Python编程语言构建的Web应用的开发速度。Django应用的部署方式非常多,本教程将演示如何使用Nginx作为反向代理、Gunicorn作为WSGI服务器来部署Django应用。Gunicorn负责高效地提供应用服务,而Nginx则负责负载均衡、缓存以及处理传入请求。Django应用同时结合了两者优势,可获得更强的安全性和更出色的请求处理能力。

一、准备

准备部署Django应用需具备以下条件:

1、一台运行基于Linux的发行版的服务器(本文Ubuntu 22.04服务器)

2、已安装Python 3和PHP

3、服务器上已安装Nginx

4、为Django项目搭建好的虚拟环境

二、安装Gunicorn

Gunicorn是适用于Django应用程序的高效Python WSGI HTTP服务器。

执行安装命令:

pip install gunicorn

Gunicorn+Nginx部署Django应用图文教程

安装完成后,导航至Django项目目录并测试Gunicorn:

gunicorn –bind 0.0.0.0:8000 myproject.wsgi:application

Gunicorn+Nginx部署Django应用图文教程

此命令将在8000端口上运行Gunicorn,并为Django应用提供服务,通过http://your-server-ip:8000访问。

三、将Gunicorn配置为Systemd服务

为确保Gunicorn作为后台服务运行并在出现故障时自动重启,请先创建一个systemd服务文件:

sudo nano /etc/systemd/system/gunicorn.service

添加以下内容,将‘myuser’和‘myproject’替换为您的详细信息:

[Unit]
Description=Gunicorn instance to serve Django application
After=network.target

[Service]
User=myuser
Group=myuser
WorkingDirectory=/home/myuser/myproject
ExecStart=/home/myuser/myproject/venv/bin/gunicorn –workers 3 –bind unix:/home/myuser/myproject/gunicorn.sock myproject.wsgi:application

[Install]
WantedBy=multi-user.target

请确保选择正确的WorkingDirectory及所有其他参数。

保存并退出,然后重新加载systemd并启动服务:

sudo systemctl daemon-reload
sudo systemctl start gunicorn
sudo systemctl enable gunicorn

四、将Nginx配置为反向代理

Nginx将处理传入的请求,并将其转发给Gunicorn。

创建一个新的Nginx服务器块:

sudo nano /etc/nginx/sites-available/myproject

添加以下配置:

server {
listen 80;
server_name your_domain_or_IP;

location / {
proxy_pass http://unix:/root/myproject/gunicorn.sock;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
}
}

启用配置并重启 Nginx:

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx

五、调整防火墙规则

请使用以下命令确保防火墙允许HTTP和HTTPS流量:

sudo ufw allow ‘Nginx Full’

六、验证部署

Django应用现在应可通过Nginx和Gunicorn访问。在浏览器中输入http://your-domain-or-ip即可。

Gunicorn+Nginx部署Django应用图文教程

至此,Django应用已通过Gunicorn和Nginx搭建完成。

  • 广告合作

  • QQ群号:4114653

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

相关文章