Django项目部署到阿里云服务器Ubuntu 22 上,使用 Nginx 和 Gunicorn,以下是详细步骤

在 Ubuntu 22 上部署 Django 项目到阿里云服务器,可以按照以下详细步骤操作。以下指南将涵盖从创建 ECS 实例到配置 Nginx 和 Gunicorn 来部署 Django 应用的全过程。

步骤一:准备工作

  1. 创建阿里云 ECS 实例

    • 登录到阿里云控制台,进入 ECS 服务。
    • 点击“创建实例”,选择“按量付费”或“包年包月”模式。
    • 选择“镜像市场”或“公共镜像”,选择 Ubuntu 22.04 操作系统。
    • 配置实例的规格和网络,确保选择适合的 CPU 和内存配置。
    • 设置实例的密码或 SSH 密钥(建议使用 SSH 密钥)。
  2. 获取 ECS 实例的公网 IP 地址

步骤二:远程连接到 ECS 实例

  1. 使用 SSH 连接到实例
     bash 

    复制代码

    ssh root@<你的实例公网IP>

    其中 <你的实例公网IP> 是你在创建实例时获得的公网 IP 地址。

步骤三:安装和配置基础环境

  1. 更新软件包

     bash 

    复制代码

    sudo apt update sudo apt upgrade -y

  2. 安装 Python 和 pip

     bash 

    复制代码

    sudo apt install python3 python3-pip -y

  3. 安装和设置 Virtualenv(虚拟环境,用于隔离项目依赖):

     bash 

    复制代码

    sudo pip3 install virtualenv mkdir ~/myproject cd ~/myproject virtualenv venv source venv/bin/activate

步骤四:配置数据库

根据你使用的数据库来安装和配置:

  1. 安装 MySQL

     bash 

    复制代码

    sudo apt install mysql-server -y sudo mysql_secure_installation

    • 创建 MySQL 数据库和用户:
       sql 

      复制代码

      CREATE DATABASE myproject; CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON myproject.* TO 'myuser'@'localhost'; FLUSH PRIVILEGES;

  2. 安装 PostgreSQL

     bash 

    复制代码

    sudo apt install postgresql postgresql-contrib -y

    • 创建 PostgreSQL 数据库和用户:
       bash 

      复制代码

      sudo -i -u postgres psql CREATE DATABASE myproject; CREATE USER myuser WITH PASSWORD 'mypassword'; ALTER ROLE myuser SET client_encoding TO 'utf8'; ALTER ROLE myuser SET default_transaction_isolation TO 'read committed'; ALTER ROLE myuser SET timezone TO 'UTC'; GRANT ALL PRIVILEGES ON DATABASE myproject TO myuser; \q exit

步骤五:部署 Django 项目

  1. 上传 Django 项目到服务器

    • 可以使用 SCP、FTP 或 Git 来上传你的 Django 项目到服务器。
    • 假设项目目录为 ~/myproject/myapp
  2. 安装项目依赖

     bash 

    复制代码

    cd ~/myproject/myapp pip install -r requirements.txt

  3. 配置 Django 项目

    • 修改 settings.py,设置数据库配置和其他相关设置。
    • 设置 ALLOWED_HOSTS 包含你的服务器 IP 或域名。
    • 运行数据库迁移:
       bash 

      复制代码

      python manage.py migrate

  4. 创建超级用户(可选,但推荐):

     bash 

    复制代码

    python manage.py createsuperuser

步骤六:安装和配置 Gunicorn

  1. 安装 Gunicorn

     bash 

    复制代码

    pip install gunicorn

  2. 测试 Gunicorn 是否能启动项目

     bash 

    复制代码

    gunicorn --bind 0.0.0.0:8000 myapp.wsgi

    • 这会在端口 8000 上启动你的 Django 项目,可以通过 http://<你的实例公网IP>:8000 访问。

步骤七:安装和配置 Nginx

  1. 安装 Nginx

     bash 

    复制代码

    sudo apt install nginx -y

  2. 配置 Nginx 以反向代理 Gunicorn

    • 创建一个新的 Nginx 配置文件,例如 myproject
       bash 

      复制代码

      sudo nano /etc/nginx/sites-available/myproject

    • 添加以下内容:
       nginx 

      复制代码

      server { listen 80; server_name <你的域名或公网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; proxy_set_header X-Forwarded-Proto $scheme; } location /static/ { alias /path/to/static/; } location /media/ { alias /path/to/media/; } }

    • 创建符号链接以启用配置:
       bash 

      复制代码

      sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled

  3. 测试 Nginx 配置

     bash 

    复制代码

    sudo nginx -t

  4. 重新加载 Nginx

     bash 

    复制代码

    sudo systemctl restart nginx

步骤八:配置 Gunicorn 的系统服务

  1. 创建 Gunicorn 的 systemd 服务文件

     bash 

    复制代码

    sudo nano /etc/systemd/system/gunicorn.service

  2. 添加以下内容

     ini 

    复制代码

    [Unit] Description=gunicorn daemon After=network.target [Service] User=<your-username> Group=www-data WorkingDirectory=/home/<your-username>/myproject/myapp ExecStart=/home/<your-username>/myproject/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/<your-username>/myproject/myapp.sock myapp.wsgi:application [Install] WantedBy=multi-user.target

    • 替换 <your-username> 为你的实际用户名。
  3. 启动和启用 Gunicorn 服务

     bash 

    复制代码

    sudo systemctl start gunicorn sudo systemctl enable gunicorn

步骤九:设置静态文件

  1. 收集静态文件

     bash 

    复制代码

    python manage.py collectstatic

  2. 配置静态文件目录

    • 在 Nginx 配置中,确保静态文件和媒体文件的路径正确。

步骤十:设置域名和 SSL(可选)

  1. 绑定域名到你的 ECS 实例:在阿里云域名管理中,将你的域名指向 ECS 实例的公网 IP。

  2. 配置 SSL 证书:使用 Let's Encrypt 进行免费的 SSL 证书配置(推荐使用 Certbot)。

     bash 

    复制代码

    sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d <your-domain>

    • 按照提示完成 SSL 证书的配置。

完成

现在,你的 Django 项目应该已经成功部署并可以通过域名或 IP 地址访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值