32 部署Django应用之部署到服务器

在上一篇中,我们为Django应用的部署做好了环境准备,确保我们的服务器、数据库、和其他依赖都已正确安装和配置。在本篇中,我们将详细探讨如何将Django应用部署到服务器上,以便可以在生产环境中运行。

选择适合的服务器

在选择服务器时,您可以选择多个选项。例如,可以选择云服务提供商(如 AWS、DigitalOcean、Vultr 等)、虚拟专用服务器(VPS)或虚拟主机。无论您选择哪种方式,确保您的服务器符合以下基本要求:

  • 支持 Python:Django 是基于 Python 的,因此您的服务器必需支持 Python。
  • 安装必要的软件:确保服务器安装了 pipvirtualenv 等工具。
  • 有足够的资源:根据应用的需求考虑服务器的 CPU、内存和存储资源。

安装和配置数据库

如果您的Django应用使用了数据库(如 PostgreSQL、MySQL等),请在服务器上安装相应的数据库软件。以下以 PostgreSQL 为例:

步骤

  1. 安装 PostgreSQL

    在Ubuntu服务器上,您可以运行以下命令:

    1
    2
    sudo apt update
    sudo apt install postgresql postgresql-contrib
  2. 创建数据库和用户

    登录PostgreSQL:

    1
    2
    sudo -i -u postgres
    psql

    创建数据库和用户:

    1
    2
    3
    4
    5
    6
    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;
  3. 退出 PostgreSQL

    1
    \q

上传Django应用

可以使用 scp 或其他文件传输工具(如 FTP、SFTP)将本地Django项目上传到服务器上。假设您已将项目打包为 myproject.zip

1
scp myproject.zip user@your_server_ip:/path/to/destination

在服务器上解压文件:

1
2
unzip myproject.zip
cd myproject

设置虚拟环境

在您的Django项目目录中创建和激活虚拟环境:

1
2
3
4
5
6
7
8
# 安装 virtualenv   (如果没有安装)
sudo apt install python3-venv

# 创建虚拟环境
python3 -m venv venv

# 激活虚拟环境
source venv/bin/activate

安装项目依赖

在虚拟环境中安装您的项目所需的依赖:

1
pip install -r requirements.txt

配置Django应用

修改 Django 设置

确保在 settings.py 中配置以下内容:

  1. 数据库配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'NAME': 'myproject',
    'USER': 'myuser',
    'PASSWORD': 'mypassword',
    'HOST': 'localhost',
    'PORT': '',
    }
    }
  2. 设置 Allowed Hosts

    settings.py 中,包含您的服务器 IP 或域名:

    1
    ALLOWED_HOSTS = ['your_server_ip', 'your_domain.com']

迁移数据库

在服务器上运行以下命令以应用数据库迁移:

1
python manage.py migrate

收集静态文件

确保您运行以下命令,以便Django能够找到静态文件:

1
python manage.py collectstatic

启动服务器

您可以使用 Gunicorn 来运行 Django 应用。首先,安装 Gunicorn

1
pip install gunicorn

然后,使用以下命令启动您的Django应用:

1
gunicorn myproject.wsgi:application --bind 0.0.0.0:8000

您可以通过访问 http://your_server_ip:8000 检查应用是否正常运行。

使用 Nginx 反向代理

为了使应用在端口 80 上运行,建议使用 Nginx。首先安装 Nginx:

1
sudo apt install nginx

配置 Nginx

创建一个新的配置文件:

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

在文件中添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
listen 80;
server_name your_server_ip your_domain.com;

location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /path/to/your/project;
}

location / {
include proxy_params;
proxy_pass http://127.0.0.1:8000;
}
}

启用配置

创建符号链接并重启 Nginx 以使配置生效:

1
2
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
sudo systemctl restart nginx

运行应用

至此,您已成功将 Django 应用部署到服务器并通过 Nginx 提供服务。您可以通过访问 http://your_server_iphttp://your_domain.com 来查看您的应用。

在下一篇中,我们将讨论如何处理静态文件,确保它们能够被正确加载并提供给用户。请继续关注!

32 部署Django应用之部署到服务器

https://zglg.work/django-zero/32/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论