奋斗
努力

阿里云服务器Ubuntu 22.04安装宝塔后如何配置Django?

云计算

在阿里云 Ubuntu 22.04 上通过宝塔面板(BT Panel)配置 Django 项目,核心思路是利用宝塔的“网站”功能管理 Nginx,配合 Python 虚拟环境运行 Django。以下是详细步骤:


一、前置准备

  1. 安装宝塔面板(若未安装)

    wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

    安装后登录宝塔面板(默认端口 8888)。

  2. 安装必要依赖
    在宝塔终端中执行:

    sudo apt update
    sudo apt install -y python3-pip python3-dev libpq-dev nginx

二、创建 Django 项目

  1. 创建用户目录与虚拟环境

    mkdir -p /www/wwwroot/your_domain.com
    cd /www/wwwroot/your_domain.com
    python3 -m venv venv
    source venv/bin/activate
    pip install django gunicorn psycopg2-binary

    ✅ 提示:将 your_domain.com 替换为你的实际域名。

  2. 初始化 Django 项目

    django-admin startproject myproject .
    python manage.py migrate
    python manage.py createsuperuser
  3. 配置 settings.py
    编辑 /www/wwwroot/your_domain.com/myproject/settings.py:

    # 允许所有主机访问(生产环境需修改)
    ALLOWED_HOSTS = ['your_domain.com', 'localhost', '127.0.0.1']
    
    # 静态文件配置
    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
    
    # 数据库配置(以 PostgreSQL 为例)
    DATABASES = {
       'default': {
           'ENGINE': 'django.db.backends.postgresql',
           'NAME': 'your_db_name',
           'USER': 'your_db_user',
           'PASSWORD': 'your_db_password',
           'HOST': 'localhost',
           'PORT': '5432',
       }
    }
    
    # 开启 DEBUG=False(生产环境必须关闭)
    DEBUG = False
  4. 收集静态文件

    python manage.py collectstatic --noinput

三、宝塔面板配置

1. 创建网站

  • 进入宝塔面板 → 网站 → 添加站点
    • 域名:填写你的域名(如 your_domain.com)
    • 根目录:自动指向 /www/wwwroot/your_domain.com
    • 数据库:根据需求选择 MySQL/PostgreSQL(若无则跳过)

2. 配置 Nginx 反向X_X

  • 进入该网站的 设置 → 配置文件
  • 替换默认配置为以下内容(关键部分已标注):

    server {
    listen 80;
    server_name your_domain.com;
    
    location / {
        proxy_pass http://127.0.0.1:8000;  # Gunicorn 监听端口
        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 提供(优化性能)
    location /static/ {
        alias /www/wwwroot/your_domain.com/staticfiles/;
    }
    
    # 媒体文件(如有上传)
    location /media/ {
        alias /www/wwwroot/your_domain.com/media/;
    }
    }

    ⚠️ 注意:确保 staticfiles 目录存在且权限正确(见下文)。

3. 启动 Gunicorn 服务

在宝塔终端中:

cd /www/wwwroot/your_domain.com
source venv/bin/activate
gunicorn --bind 127.0.0.1:8000 myproject.wsgi:application &

🔒 生产环境建议使用 systemd 管理进程(避免重启失效),示例:

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

[Service]
User=www-data
Group=www-data
WorkingDirectory=/www/wwwroot/your_domain.com
Environment="PATH=/www/wwwroot/your_domain.com/venv/bin"
ExecStart=/www/wwwroot/your_domain.com/venv/bin/gunicorn --workers 3 --bind unix:/www/wwwroot/your_domain.com/gunicorn.sock myproject.wsgi:application

[Install]
WantedBy=multi-user.target

保存为 /etc/systemd/system/gunicorn.service 并启用:

sudo systemctl enable gunicorn
sudo systemctl start gunicorn

四、权限与安全加固

  1. 修复目录权限

    sudo chown -R www-data:www-data /www/wwwroot/your_domain.com
    sudo chmod -R 755 /www/wwwroot/your_domain.com
  2. SSL 证书配置
    在宝塔 网站设置 → SSL 中选择 Let’s Encrypt 免费证书,启用 HTTPS。

  3. 防火墙规则
    在阿里云控制台放行 80/443 端口,宝塔内部可关闭 8000 端口对外暴露。


五、验证部署

  1. 访问 http://your_domain.com 应看到 Django 欢迎页或首页。
  2. 检查静态文件是否正常加载(浏览器打开 http://your_domain.com/static/ 下的 CSS/JS)。
  3. 测试后台管理:http://your_domain.com/admin/ 登录超级用户。

常见问题排查

问题 解决方案
502 Bad Gateway 检查 Gunicorn 是否运行:ps aux | grep gunicorn;查看日志:tail -f /www/wwwlogs/your_domain.com_error.log
静态文件 404 确认 STATIC_ROOT 路径正确,且 Nginx alias 指向真实目录
数据库连接失败 检查 settings.py 中的数据库账号密码,以及 PostgreSQL 是否监听本地

通过以上步骤,即可在阿里云 Ubuntu 22.04 + 宝塔面板环境中稳定部署 Django 应用。如需进一步优化性能(如 Redis 缓存、Celery 任务队列),可在宝塔应用商店直接安装对应插件。

未经允许不得转载:云服务器 » 阿里云服务器Ubuntu 22.04安装宝塔后如何配置Django?