溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么把 Django 項目部署到服務器

發布時間:2021-07-20 10:04:15 來源:億速云 閱讀:469 作者:chen 欄目:云計算
# 怎么把 Django 項目部署到服務器

## 前言

將 Django 項目部署到生產環境是開發流程中的重要環節。本文將以 Nginx + Gunicorn + Supervisor 的組合為例,詳細介紹從本地開發環境到云服務器的完整部署流程,適用于 Ubuntu/Debian 系統。

---

## 一、準備工作

### 1.1 服務器環境要求
- Linux 服務器(推薦 Ubuntu 20.04+)
- Python 3.8+
- 已安裝 pip 和 virtualenv
- 開放 80/443(HTTP/HTTPS)和 22(SSH)端口

### 1.2 本地項目準備
```bash
# 導出依賴包
pip freeze > requirements.txt

# 確認關鍵配置
DEBUG = False
ALLOWED_HOSTS = ['yourdomain.com', '服務器IP']

二、服務器初始化

2.1 連接服務器

ssh root@your_server_ip

2.2 創建部署用戶(推薦)

adduser deploy
usermod -aG sudo deploy
su - deploy

2.3 安裝基礎依賴

sudo apt update
sudo apt install -y python3-pip python3-venv nginx supervisor

三、項目部署流程

3.1 上傳項目代碼

推薦使用 Git 或 SCP:

scp -r /local/path deploy@server_ip:/home/deploy/project

3.2 創建虛擬環境

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

3.3 數據庫配置

MySQL 示例:

sudo apt install -y mysql-server
sudo mysql_secure_installation

# 創建數據庫
mysql -u root -p
CREATE DATABASE dbname CHARACTER SET utf8mb4;

修改 Django 配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dbname',
        'USER': 'username',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

3.4 收集靜態文件

python manage.py collectstatic

四、配置 Gunicorn

4.1 安裝 Gunicorn

pip install gunicorn

4.2 測試運行

gunicorn --bind 0.0.0.0:8000 project.wsgi:application

4.3 創建配置文件

/home/deploy/project/gunicorn_conf.py

bind = "127.0.0.1:8000"
workers = 3
user = "deploy"
timeout = 120

五、配置 Supervisor

5.1 創建配置文件

/etc/supervisor/conf.d/django.conf

[program:django]
command=/home/deploy/venv/bin/gunicorn -c /home/deploy/project/gunicorn_conf.py project.wsgi:application
directory=/home/deploy/project
user=deploy
autostart=true
autorestart=true
stderr_logfile=/var/log/django.err.log
stdout_logfile=/var/log/django.out.log

5.2 啟動服務

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start django

六、配置 Nginx

6.1 創建配置文件

/etc/nginx/sites-available/django

server {
    listen 80;
    server_name yourdomain.com;

    location /static/ {
        alias /home/deploy/project/staticfiles/;
    }

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

6.2 啟用配置

sudo ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled
sudo nginx -t  # 測試配置
sudo systemctl restart nginx

七、HTTPS 配置(可選)

使用 Let’s Encrypt 免費證書:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com

八、部署后檢查

  1. 檢查服務狀態:

    sudo supervisorctl status
    sudo systemctl status nginx
    
  2. 測試錯誤頁面:

    • 故意觸發 404500 錯誤
    • 檢查日志文件 /var/log/django.err.log
  3. 自動化部署建議:

    • 使用 GitHub Actions 或 GitLab CI
    • 編寫部署腳本(deploy.sh)

常見問題解決

Q1: 靜態文件 404 錯誤

  • 檢查 STATIC_ROOT 配置
  • 確認 Nginx alias 路徑正確
  • 確保執行了 collectstatic

Q2: 數據庫連接失敗

  • 檢查 MySQL 用戶權限
  • 確認數據庫服務正在運行
  • 測試直接連接數據庫

Q3: 502 Bad Gateway

  • 檢查 Gunicorn 是否運行:ps aux | grep gunicorn
  • 查看 Supervisor 日志
  • 檢查端口沖突

結語

通過以上步驟,你的 Django 項目應該已經成功部署。建議定期: - 更新系統安全補丁 - 備份數據庫 - 監控服務器資源使用情況

如需更高級的部署方案,可以考慮 Docker 或 Kubernetes 容器化部署。 “`

(全文約1350字)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女