🗣 Wd提问: VPS搭建教程Django
🤖 Ai回答: 以下是一个基本的VPS(虚拟私有服务器)上搭建Django项目的教程,适用于使用Ubuntu系统的VPS。你可以根据自己的需求调整具体步骤。
一、准备工作
1、购买VPS
选择一个VPS提供商(如DigitalOcean、Vultr、Linode、阿里云等)。
选择Ubuntu作为操作系统(推荐Ubuntu 20.04或22.04)。
2、连接VPS
使用SSH连接服务器:
bash
ssh root@your_server_ip
二、配置基础环境
1、更新系统
bash
apt update && apt upgrade -y
2、创建普通用户(可选但推荐)
bash
adduser yourusername
usermod -aG sudo yourusername
su yourusername
3、安装Python和pip
bash
sudo apt install python3 python3-pip python3-venv -y
4、安装数据库(如PostgreSQL)
bash
sudo apt install postgresql postgresql-contrib -y
sudo -u postgres psql
在PostgreSQL中创建用户和数据库:
sql
CREATE USER yourdbuser WITH PASSWORD 'yourpassword';
CREATE DATABASE yourdbname OWNER yourdbuser;
\q
5、安装Nginx(用于反向代理)
bash
sudo apt install nginx -y
6、安装Gunicorn(WSGI服务器)
bash
pip3 install gunicorn
三、部署Django项目
1、上传Django项目
使用`git clone`克隆项目,或使用`scp`上传本地项目。
2、创建虚拟环境并安装依赖
bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
3、配置Django设置
修改`settings.py`中的:
`ALLOWED_HOSTS = ['yourdomain.com', 'your_server_ip']`
数据库配置:
python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'yourdbname',
'USER': 'yourdbuser',
'PASSWORD': 'yourpassword',
'HOST': 'localhost',
'PORT': '',
}
}
4、运行迁移和收集静态文件
bash
python manage.py migrate
python manage.py collectstatic
5、测试Gunicorn运行
bash
gunicorn bind 0.0.0.0:8000 yourproject.wsgi
使用浏览器访问 `http://your_server_ip:8000` 测试是否正常。
四、配置Gunicorn服务
1、创建systemd服务文件
创建文件 `/etc/systemd/system/gunicorn.service`:
ini
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=yourusername
Group=www-data
WorkingDirectory=/path/to/your/project
ExecStart=/path/to/venv/bin/gunicorn access-logfile workers 3 bind unix:/path/to/your/project.sock yourproject.wsgi
[Install]
WantedBy=multi-user.target
2、启动并启用服务
bash
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
五、配置Nginx反向代理
1、创建Nginx配置文件
创建文件 `/etc/nginx/sites-available/yourproject`:
nginx
server {
listen 80;
server_name yourdomain.com your_server_ip;
location / {
proxy_pass http://unix:/path/to/your/project.sock:/;
include proxy_params;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static/ {
alias /path/to/your/static/;
}
location /media/ {
alias /path/to/your/media/;
}
}
2、启用配置并重启Nginx
bash
sudo ln -s /etc/nginx/sites-available/yourproject /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
六、配置防火墙(UFW)
bash
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
七、(可选)配置HTTPS(使用Let's Encrypt)
1、安装Certbot:
bash
sudo apt install certbot python3-certbot-nginx -y
2、获取并配置SSL证书:
bash
sudo certbot nginx -d yourdomain.com
3、自动续期:
Certbot会自动配置定时任务进行证书续期。
八、完成
现在你可以通过浏览器访问你的Django项目了,地址为 `http://yourdomain.com` 或 `http://your_server_ip`。
常见问题排查
502 Bad Gateway:检查Gunicorn是否运行,以及Nginx的socket路径是否正确。
静态文件403或404:检查`collectstatic`是否执行,Nginx配置是否正确。
数据库连接失败:检查PostgreSQL用户权限和密码是否正确。
如需更详细的配置或遇到具体问题,欢迎继续提问!
📣 商家广告:





0
IP地址: 139.8.137.150
搜索次数: 8
提问时间: 2025-12-10 08:43:41
本站所有
❓
问答
均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
本站由
🟢
豌豆Ai
提供技术支持,使用的最新版:
豌豆Ai站群搜索引擎系统 V.25.10.25
搭建本站。