【Django】Django项目部署

项目部署

1 基本概念

项目部署是指在软件开发完毕后,将开发机器上运行的软件实际安装到服务器上进行长期运行。

  1. 在安装机器上安装和配置同版本的环境[python,数据库等]

  2. django项目迁移

    scp /home/euansu/Code/Python/website euansu@xx.xx.xx.xx:/home/euansu/xxx
  3. 用uWSGI替代python3 manage.py runserver方法启动服务器。

  4. 配置nginx反向代理服务器。

  5. 用nginx配置静态文件路径,解决静态路径问题。

2 WSGI定义

WSGI(Web Server Gateway Interface)Web服务器网关接口,是Python应用程序或框架和web服务器之间的一种接口,被广泛使用。

使用Python manage.py runserver通常只在开发和测试环境中使用,当开发结束后,完善的项目代码需要在一个搞笑稳定的环境中运行,这是可以使用WSGI。

开发环境中,runserver将http协议的内容规范成WSGI规范给Django处理,将WSGI的规范转换成http规范进行返回。

3 uWSGI

3.1 uWSGI定义

uWSGI是WSGI的一种,它实现了http协议WSGI协议以及uwsgi协议。uWSGI功能完善,支持协议众多,在Python web热度极高。

uWSGI主要以学习配置为主。

3.2 uWSGI安装

pip install uwsgi==2.0.18 -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 检查是否安装成功,如果成功安装则会输出uWSGI==2.0.18
pip freeze | grep -i 'uwsgi'

3.3 uWSGI配置

添加配置文件 项目同名文件夹/uwsgi.ini,如:website/website/uwsgi.ini

文件以[uwsgi]开头,有如下配置项:

  • 套接字方式的 IP地址:端口号 【此模式需要有nginx】

    socket=127.0.0.1:8000
  • http通信方式的 IP地址:端口号

    http=127.0.0.1:8000
  • 项目当前工作目录

    chdir=/home/euansu/website
  • 项目中wsgi.py文件的目录,相对于当前工作目录

    wsgi-file=website/wsgi.py
  • 进程个数

    process=4
  • 每个进程的线程个数

    threads=2
  • 服务的pid记录文件

    pidfile=uwsgi.pid
  • 服务的日志文件,配置该选项后,说明项目后台启动,且日志输出到该文件中

    daemonize=uwsgi.log
  • 开启主进程管理模式

    master=true

特殊说明,Django的setting.py需要做如下配置:

  1. 修改settings.py,将DEBUG=True改为DEBUG=False

  2. 修改settings.py,将ALLOWED_HOSTS=[] 改为 ALLOWED_HOSTS=['网站域名/服务器监听的ip地址']

实际项目的配置文件如下:

# 项目名/uwsgi.ini
[uwsgi]
# http通信方式的 IP地址:端口号
http=127.0.0.1:8000
# 项目当前工作目录
chdir=/home/euansu/Code/Python/website
# 项目中wsgi.py文件的位置
wsgi-file=website/wsgi.py
# 进程个数
process=4
# 线程个数
threads=2
# 服务的pid记录文件
pidfile=uwsgi.pid
# 服务的日志文件,是不是由后台启动以及日志输出到哪里
daemonize=uwsgi.log
# 开启主进程管理模式
master=true

3.4 uWSGI的运行管理

  • 启动uwsgi

    # cd到uWSGI配置文件所在目录
    uwsgi --ini uwsgi.ini

    启动以及检测进程是否成功。

    网页访问。

  • 停止uwsgi

    # cd到uWSGI配置文件所在目录
    uwsgi --stop uwsgi.pid

相关推荐

  1. nginx项目部署+项目优化

    2024-02-13 05:24:02       58 阅读
  2. ferry前端项目部署

    2024-02-13 05:24:02       79 阅读
  3. nginx部署vue项目

    2024-02-13 05:24:02       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-13 05:24:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-13 05:24:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-13 05:24:02       82 阅读
  4. Python语言-面向对象

    2024-02-13 05:24:02       91 阅读

热门阅读

  1. django实现外键

    2024-02-13 05:24:02       54 阅读
  2. COMP 636: Web App

    2024-02-13 05:24:02       45 阅读
  3. 3.3 Binance_interface APP U本位合约行情-实时行情

    2024-02-13 05:24:02       47 阅读
  4. dolphinDB使用select筛选时间字段

    2024-02-13 05:24:02       52 阅读
  5. 【leetcode】动态规划——序列问题总结

    2024-02-13 05:24:02       52 阅读
  6. Leetcode 3033. Modify the Matrix

    2024-02-13 05:24:02       58 阅读
  7. 掌握网络脉搏:深入解析TCP协议及其未来发展

    2024-02-13 05:24:02       43 阅读
  8. 【模板】k 短路 / [SDOI2010] 魔法猪学院

    2024-02-13 05:24:02       58 阅读