京东云服务器如何部署Django项目?

在京东云服务器上部署 Django 项目,主要分为以下几个步骤。这里假设你使用的是 Linux 系统(如 CentOS 或 Ubuntu),并已经购买和登录了京东云服务器。


🧱 准备工作

  1. 购买并登录京东云服务器

    • 登录方式:通过 SSH 连接服务器
    • 推荐使用密钥登录或用户名+密码方式登录
  2. 安装 Python 环境

    • 安装 Python3、pip、virtualenv(推荐使用虚拟环境)
    # Ubuntu/Debian
    sudo apt update
    sudo apt install python3 python3-pip python3-venv -y
    
    # CentOS
    sudo yum install python3 python3-pip -y
  3. 上传你的 Django 项目代码

    • 可以使用 git clone 拉取代码
    • 或者用 FTP/SFTP 工具上传本地项目文件

🔧 部署流程

1. 创建虚拟环境

python3 -m venv venv
source venv/bin/activate

2. 安装依赖

进入项目目录:

cd your_project_name/
pip install -r requirements.txt

如果没有 requirements.txt,你需要手动安装 Django 和其他依赖:

pip install django gunicorn

3. 修改 Django 设置(settings.py

  • 允许所有主机访问(测试时)

    ALLOWED_HOSTS = ['*']
  • 关闭调试模式(生产环境)

    DEBUG = False
  • 设置静态文件路径

    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

运行收集静态文件命令:

python manage.py collectstatic --noinput

4. 使用 Gunicorn 启动 Django 服务

安装 Gunicorn:

pip install gunicorn

启动服务:

gunicorn your_project_name.wsgi:application

你可以加一些参数让它后台运行:

gunicorn --bind 0.0.0.0:8000 your_project_name.wsgi:application -w 3 -D

-w 表示 worker 数量,一般为 CPU 核心数 + 1;-D 表示后台运行


5. 配置 Nginx(可选但推荐)

安装 Nginx

# Ubuntu
sudo apt install nginx -y

# CentOS
sudo yum install nginx -y

创建 Nginx 配置文件

编辑配置文件:

sudo nano /etc/nginx/sites-available/django.conf

写入以下内容:

server {
    listen 80;
    server_name your_domain_or_ip;

    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;
    }

    location /static/ {
        alias /path/to/your/staticfiles/;
    }
}

创建软链接启用站点:

sudo ln -s /etc/nginx/sites-available/django.conf /etc/nginx/sites-enabled/

检查语法并重启 Nginx:

sudo nginx -t
sudo systemctl restart nginx

6. 开放防火墙端口

确保京东云控制台中开放了对应端口(如 80、443),同时服务器也开启防火墙规则。

Ubuntu 上可以使用:

sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

CentOS 上使用:

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload

✅ 验证部署

打开浏览器访问你的服务器 IP 或域名,应该能看到 Django 页面。


🧼 常见问题排查

问题 解决方案
页面空白或 500 错误 检查 Gunicorn 日志,查看是否有异常:journalctl -u gunicorn 或直接运行 Gunicorn 查看输出
静态文件不显示 检查是否执行 collectstatic,Nginx 配置的路径是否正确
数据库连接失败 检查数据库配置(MySQL/PostgreSQL),确认远程访问权限
跨域请求被拦截 检查 CORS 配置,或者添加中间件处理

🚀 进阶建议

  • 使用 Supervisor 管理 Gunicorn 进程,防止崩溃退出
  • 使用 Let’s Encrypt 添加 HTTPS 支持
  • 使用 uwsgi 替代 Gunicorn(性能更好)
  • 配合 GitHub Action 或 Jenkins 实现 CI/CD 自动化部署

如果你提供具体的操作系统版本、Django 版本、是否需要 HTTPS 等信息,我可以给出更详细的定制化部署指南。需要我帮你写一个完整的自动化部署脚本吗?

未经允许不得转载:秒懂云 » 京东云服务器如何部署Django项目?