如何在Linux上安全部署Django?

环境准备

  1. 更新系统

    sudo apt update && sudo apt upgrade -y  # Debian/Ubuntu
    sudo dnf update -y  # Fedora/CentOS
  2. 安装Python
    Django基于Python运行,推荐Python 3.8+:

    sudo apt install python3 python3-pip python3-venv -y
  3. 创建虚拟环境(隔离依赖)

    python3 -m venv myenv      # 创建虚拟环境目录
    source myenv/bin/activate  # 激活环境(提示符会变化)

安装与配置Django

  1. 安装Django
    在激活的虚拟环境中执行:

    pip install django
  2. 创建Django项目

    django-admin startproject myproject  # 生成项目目录
    cd myproject
  3. 配置数据库(默认SQLite无需额外安装)
    如需MySQL/PostgreSQL,需安装对应驱动:

    pip install mysqlclient    # MySQL
    pip install psycopg2-binary # PostgreSQL

    修改 myproject/settings.py 中的 DATABASES 配置。


运行开发服务器

  1. 启动服务

    python manage.py runserver 0.0.0.0:8000
    • 0.0.0 允许外部设备访问
    • 默认端口8000(可用 :8080 修改)
  2. 验证运行
    浏览器访问:
    http://<服务器IP>:8000
    出现 “The install worked successfully!” 即成功。


生产环境部署建议

开发服务器仅用于测试,生产环境需使用:

  1. WSGI服务器:Gunicorn或uWSGI
    pip install gunicorn
    gunicorn myproject.wsgi:application --bind 0.0.0.0:8000
  2. 反向代理:Nginx/Apache
    Nginx配置示例:

    server {
        listen 80;
        server_name yourdomain.com;
        location / {
            proxy_pass http://127.0.0.1:8000;
            proxy_set_header Host $host;
        }
    }
  3. 静态文件处理
    settings.py 中设置:

    STATIC_ROOT = BASE_DIR / "static"

    执行:

    python manage.py collectstatic

故障排查

  • 端口冲突
    使用 lsof -i:8000 查找占用进程,kill <PID> 终止或换端口。
  • 访问被拒绝
    检查防火墙:

    sudo ufw allow 8000  # 开放端口
  • 依赖缺失
    通过 pip freeze > requirements.txt 备份依赖,部署时用 pip install -r requirements.txt 恢复。

安全提示

  1. 生产环境务必设置 DEBUG = False
  2. 生成密钥:python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'
  3. 定期更新依赖:pip list --outdated

扩展学习

  • 官方文档:Django Deployment Checklist
  • 虚拟环境管理:Python venv指南
  • 服务器配置:DigitalOcean Django教程

引用说明参考Django官方文档、Linux基金会安全指南及Python社区最佳实践,适用于Ubuntu 20.04+、CentOS 7+等主流发行版,操作前请备份数据,关键操作建议在测试环境验证。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5522.html

(0)
酷番叔酷番叔
上一篇 2025年6月24日 14:59
下一篇 2025年6月24日 15:08

相关推荐

  • Linux源码如何查看?四种方法揭秘

    通过包管理器获取源代码(推荐)适用于通过官方仓库安装的软件(如Debian/Ubuntu的APT、CentOS/RHEL的Yum/DNF),步骤:更新软件源缓存sudo apt update # Debian/Ubuntusudo dnf makecache # CentOS 8+/RHEL 8+下载源代码包s……

    2025年7月15日
    19400
  • Linux下Oracle用户登录的具体操作方法是什么?

    在Linux操作系统下登录Oracle数据库用户,需结合Oracle数据库的认证机制与Linux系统环境,常见登录方式包括本地登录、远程登录及通过图形化工具登录,不同场景下操作步骤和注意事项有所差异,以下是详细说明:本地登录:通过Linux系统用户直接访问Oracle本地登录依赖Oracle的操作系统认证机制……

    2025年8月24日
    13900
  • Linux系统下HMMER安装的具体步骤和方法有哪些?

    在Linux系统中安装HMMER(Hidden Markov Model ER)是一套用于生物序列分析的强大工具,常用于蛋白质结构域预测、同源序列搜索等任务,以下是详细的安装步骤,涵盖环境准备、源码编译及包管理器安装两种主流方式,帮助用户根据需求选择合适的方法,环境准备安装HMMER前需确保系统满足基本要求,包……

    2025年10月7日
    16100
  • Linux如何查看指定目录是否存在?

    在Linux系统中,检查目录是否存在是日常操作和脚本编写中的常见需求,掌握正确的方法能提高工作效率,以下是几种常用的查看目录是否存在的方式,涵盖基础命令、脚本判断及进阶技巧,并附对比表格和常见问题解答,使用ls命令查看目录信息ls(list)是最基础的文件和目录列表命令,通过结合-d选项(显示目录本身而非内容……

    2025年10月3日
    14500
  • Linux下USB光驱如何挂载?详细步骤与方法解析?

    在Linux系统中,USB光驱作为一种常见的外部存储设备,常用于系统安装、数据读取或光盘内容备份,与Windows系统不同,Linux不会自动挂载USB光驱,用户需通过手动或半自动方式完成挂载操作,本文将详细讲解Linux下USB光驱的完整挂载流程,包括设备识别、挂载点创建、挂载命令执行、权限配置及常见问题处理……

    2025年10月8日
    21000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信