Python Django项目部署VPS服务器:5步完成生产环境搭建
文章分类:技术文档 /
创建时间:2025-08-01
对于Python开发者来说,将Django项目从本地迁移到生产环境是关键一步,而VPS服务器(虚拟专用服务器)凭借独立资源和灵活配置,成为部署首选。本文通过5个核心步骤,手把手教你完成Django项目在VPS服务器上的生产环境搭建。
一、准备VPS服务器
VPS服务器的核心优势是提供独立操作系统与资源,相当于一台“云端专属电脑”。开始部署前,需确保已获取VPS的IP地址、SSH登录账号(建议使用密钥登录替代密码,提升安全性)。以常见的Ubuntu系统为例,用PuTTY或Xshell等SSH客户端输入IP和账号,成功连接后即可进入服务器终端。
二、安装必要软件
Django项目运行需要Python解释器、包管理工具pip,以及Web服务器组合(Nginx+Gunicorn)。Nginx负责处理静态文件(如CSS/JS)和反向代理,Gunicorn作为WSGI服务器驱动Django应用。在Ubuntu终端执行以下命令:
sudo apt update && sudo apt install -y python3 python3-pip nginx
pip3 install gunicorn # 全局安装Gunicorn(也可在虚拟环境内安装)
安装完成后,可通过`python3 --version`和`nginx -v`验证是否成功。
三、配置虚拟环境与Django项目
虚拟环境能隔离项目依赖,避免不同项目间的包版本冲突。进入服务器项目目录(如`/var/www/django_project`),执行:
python3 -m venv myenv # 创建名为myenv的虚拟环境
source myenv/bin/activate # 激活虚拟环境(终端前缀会显示(myenv))
pip install -r requirements.txt # 安装项目依赖(需提前将requirements.txt上传至服务器)
依赖安装完成后,执行数据库迁移和静态文件收集:
python manage.py migrate # 同步数据库结构
python manage.py collectstatic # 将项目静态文件收集到统一目录(需在settings.py配置STATIC_ROOT)
四、配置Web服务器:Nginx+Gunicorn协同
Gunicorn负责运行Django应用,Nginx作为前端服务器转发请求。首先配置Gunicorn服务:
创建`/etc/systemd/system/gunicorn.service`文件,内容示例:
[Unit]
Description=Gunicorn daemon for Django project
After=network.target
[Service]
User=ubuntu # 替换为你的服务器用户名
Group=www-data
WorkingDirectory=/var/www/django_project # 项目根目录
ExecStart=/var/www/django_project/myenv/bin/gunicorn \
--workers 3 \ # 工作进程数建议为CPU核心数×2+1
--bind unix:/var/www/django_project/gunicorn.sock \ # 通过Unix套接字通信
myproject.wsgi:application # 替换为你的项目wsgi模块
[Install]
WantedBy=multi-user.target
启动并启用服务:
sudo systemctl start gunicorn
sudo systemctl enable gunicorn # 开机自启
接着配置Nginx反向代理,编辑`/etc/nginx/sites-available/django_project`:
server {
listen 80;
server_name your_domain.com; # 替换为你的域名或服务器IP
location /static/ {
root /var/www/django_project; # 指向collectstatic的STATIC_ROOT路径
}
location / {
include proxy_params;
proxy_pass http://unix:/var/www/django_project/gunicorn.sock; # 代理到Gunicorn套接字
}
}
创建软链接启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/django_project /etc/nginx/sites-enabled/
sudo nginx -t # 检查配置是否正确
sudo systemctl restart nginx
五、数据库配置:以PostgreSQL为例
生产环境推荐使用PostgreSQL(支持复杂查询和事务)。首先安装数据库:
sudo apt install -y postgresql postgresql-contrib
登录PostgreSQL创建用户和数据库:
sudo -u postgres psql
CREATE DATABASE mydb;
CREATE USER myuser WITH PASSWORD 'mypassword';
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
\q # 退出psql
最后在Django的`settings.py`中配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydb',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}
至此,Django项目已能通过域名或IP访问,生产环境搭建完成。
整个过程需注意:VPS服务器的安全组需开放80(HTTP)和22(SSH)端口;定期更新系统和依赖包;重要数据建议开启备份策略。掌握这些步骤后,后续项目迭代只需更新代码并重启Gunicorn服务即可快速上线。