通过uwsgi部署Django

博客介绍了Python的WSGI和uWSGI。WSGI是Python应用与Web服务器的接口协议,django-admin startproject会生成wsgi.py文件。uWSGI实现了WSGI所有接口,用C编写,可通过直接加参数或使用ini文件启动,还介绍了其配置、启动、停止和重启方法,不过使用时静态文件无法加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WSGI

  • python manage.py runserver:这是一款适合开发阶段使用的服务器,不适合运行在真实的生产环境中
  • 在生产环境中使用WSGI
  • WSGI:Web服务器网关接口,英文为Python Web Server Gateway Interface,缩写为WSGI,是Python应用程序或框架和Web服务器之间的一种接口,被广泛接受
  • WSGI没有官方的实现, 因为WSGI更像一个协议,只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行
  • 命令django-admin startproject会生成一个简单的wsgi.py文件,确定了settings、application对象
    • application对象:在Python模块中使用application对象与应用服务器交互
    • settings模块:Django需要导入settings模块,这里是应用定义的地方
  • 此处的服务器是一个软件,可以监听网卡端口、遵从网络层传输协议,收发http协议级别的数据

uWSGI

  • uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器
  • uWSGI代码完全用C编写
  • 安装uWSGI
pip install uwsgi

启动uWSGI来运行一个HTTP服务器/路由器,它会传递请求到你的WSGI应用:

方式一,直接添加参数:

uwsgi --http :8000--chdir /path/fto/your/project/ --wsgi-file project/wsgi.py --master --processes 4 --threads 2

Ctrl+C关闭 uwsgi 进程

方式二,将参数写入一个ini文件,将该文件添加到命令后,其中该文件名可自行命名:

uwsgi --ini uwsgi.in

  • 配置uWSGI,在项目中新建文件uwsgi.ini,编写如下配置
[uwsgi]
http=:8000                   //(直接做web服务器,使用http)
chdir=/path/to/your/project  // 项目根目录
wsgi-file=project/wsgi.py    // 相对项目目录的wsgi.py文件目录
processes=4          // 设置进程数
threads=2            // 设置线程数
master=True          // 使用主进程
pidfile=uwsgi.pid    // uwsgi的进程文件,设置此项后会自动创建
daemonize=uswgi.log  // 日志文件,设置此项后会自动创建
harakiri = 10        // 摧毁那些卡住超过10秒的进程 
  • 启动:uwsgi --ini uwsgi.ini
  • 停止:uwsgi --stop uwsgi.pid
  • 重启:uwsgi --reload uwsgi.pid
  • 使用http协议查看网站运行情况,运行正常,但是静态文件无法加载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值