Django项目部署到服务器

文章目录

django项目部署到服务器

在服务器上安装Django和依赖:

复制代码
sudo apt update
sudo apt install python3 python3-pip
pip3 install django

项目代码上传

将项目代码上传到服务器,可以使用scp或其他文件传输方法。

配置数据库

在服务器上创建数据库(如PostgreSQL或MySQL),并配置好数据库用户,然后通过Django的迁移命令创建或更新数据库表:

复制代码
python3 manage.py makemigrations
python3 manage.py migrate

收集静态文件

复制代码
python3 manage.py collectstatic

配置Web服务器

如Nginx或Apache,来代理传入的HTTP请求到Django应用。以Nginx为例,配置文件可能如下:

复制代码
server {
    listen 80;
    server_name example.com;  # 你的域名或服务器IP
 
    location /static/ {
        alias /path/to/your/django/project/static/;  # 静态文件目录
    }
 
    location / {
        proxy_pass http://localhost:8000;  # Django开发服务器的IP和端口
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

配置Gunicorn(WSGI服务器)

作为Django应用的服务器,在生产环境下推荐使用。创建一个配置文件gunicorn_config.py:

复制代码
import os
 
bind = "0.0.0.0:8000"  # 监听所有IP地址的8000端口
workers = 3  # 根据服务器资源调整

启动Gunicorn服务器:

复制代码
gunicorn --config gunicorn_config.py myproject.wsgi:application

如果你想让Django应用作为系统服务运行,可以创建一个systemd服务文件:

复制代码
[Unit]
Description=My Django Project
After=network.target
 
[Service]
User=your_user
Group=your_group
WorkingDirectory=/path/to/your/django/project
ExecStart=/path/to/gunicorn --config gunicorn_config.py myproject.wsgi:application
Restart=always

[Install]
WantedBy=multi-user.target

启动/停止/重载systemd服务。

最后,确保服务器的防火墙设置允许HTTP(端口80)和Gunicorn(默认端口8000)使用。

注意:以上步骤仅提供了一个基本的部署流程,根据项目的具体需求,可能需要额外的步骤,如配置邮件服务器、调整设置、安装额外的依赖等。

相关推荐
qetfw5 小时前
UOS DHCP Relay:跨网段分配与 IP、DNS、网关验证
linux·服务器·网络·tcp/ip·uos
尹人入圣5 小时前
目前热门的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip
明航咨询-陈老师6 小时前
ITSS运行维护服务能力成熟度认证技术纵深:标准模型、等级路径、2026审核趋势与CS/CMMI对比
服务器·数据库·cmmi
Nuanyt6 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
吴卫斌6 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
2601_967987376 小时前
Python——入门级(定义功能def函数)
python·函数·可变参数·默认参数·关键字参数
缓慢更新7 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
叼烟扛炮7 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
叼烟扛炮7 小时前
Linux 学习笔记(四十四):HTTP 协议解析与极简 Web 服务器实战
linux·服务器·学习
专注仿真9 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法