在Ubuntu上部署Django Web应用

在Ubuntu上部署Django Web应用

前言

Django是一款强大的Web开发框架,基于Python,适用于快速开发和简洁的代码。本文将介绍如何在Ubuntu系统上部署一个Django Web应用。

准备工作

在开始之前,确保你有一个已经配置好网络连接的Ubuntu服务器,并且具有管理员权限(通常是 sudo权限)。

步骤1:更新系统

首先,更新系统的软件包索引和现有的软件包:

sudo apt update
sudo apt upgrade -y

步骤2:安装Python和pip

Django是基于Python的,所以你需要安装Python和pip(Python的包管理工具):

sudo apt install python3 python3-pip -y

步骤3:安装和配置虚拟环境

为了避免不同项目之间的依赖冲突,我们使用 virtualenv来创建虚拟环境:

sudo apt install python3-venv -y

创建并激活虚拟环境:

mkdir ~/myproject
cd ~/myproject
python3 -m venv myenv
source myenv/bin/activate

步骤4:安装Django

在激活的虚拟环境中,安装Django:

pip install django

步骤5:创建Django项目

使用Django提供的命令创建一个新的项目:

django-admin startproject myproject .

步骤6:测试Django项目

在继续之前,先确保Django项目可以正常运行。启动Django开发服务器:

python manage.py runserver 0.0.0.0:8000

在浏览器中访问 http://your_server_ip:8000,你应该能看到Django的欢迎页面,这表示你的项目已经成功运行。

按下 Ctrl+C停止开发服务器。

步骤7:配置Gunicorn

Gunicorn是一个高性能的WSGI HTTP服务器,用于在生产环境中运行Django应用。安装Gunicorn:

pip install gunicorn

运行Gunicorn来测试你的Django项目:

gunicorn --bind 0.0.0.0:8000 myproject.wsgi

按下 Ctrl+C停止服务器。

步骤8:配置Nginx

Nginx是一个强大的Web服务器,可以作为反向代理来处理客户端请求,并将请求转发给Gunicorn。

安装Nginx:

sudo apt install nginx -y

创建一个新的Nginx配置文件:

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

在文件中添加以下内容:

server {
    listen 80;
    server_name your_server_ip_or_domain;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用该配置并重新加载Nginx:

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

步骤9:配置系统服务

为了方便管理Gunicorn,可以将其设置为系统服务。创建一个新的服务文件:

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

在文件中添加以下内容:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=your_username
Group=www-data
WorkingDirectory=/home/your_username/myproject
ExecStart=/home/your_username/myproject/myenv/bin/gunicorn --workers 3 --bind unix:/home/your_username/myproject/myproject.sock myproject.wsgi:application

[Install]
WantedBy=multi-user.target

替换 your_username为你的实际用户名。

重新加载系统服务并启动Gunicorn:

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

步骤10:配置防火墙

确保防火墙允许HTTP和HTTPS流量:

sudo ufw allow 'Nginx Full'
sudo ufw reload

结论

通过以上步骤,你已经在Ubuntu系统上成功部署了一个Django Web应用。现在,你可以通过浏览器访问你的Django应用,并开始进行开发和维护了。


在Ubuntu上部署Django Web应用
http://localhost:8090//archives/202407171125
作者
QiuLingYan
发布于
2024年07月21日
许可协议