【Django 029】部署到Nginx之配合wsgi返回动态内容

上一节中我们已经能够成功在nginx返回本地静态资源,没有太多django有关的配置。但是动态资源必须要借助django中的MTV模型来完成了,这一节我们就来看看如何真正将django部署到nginx上。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

什么是wsgi

wsgi,全称Web Server Gateway Interface,是 PEP 3333中定义的一个python标准。这个标准描述了一个web服务器(例如nginx)如何和web应用(例如django)进行通讯的,同时也描述了多个web应用如何通过级联来对一个请求进行处理的。

1-chart.png

如上图所示,这里的uwsgi是对wsgi协议的一种实现,是一个单独组件,可和nginx部署在不同服务器,不过其必须和django安装在一台服务器上。uwsgi中可以配置django的信息,同时又可以暴露ip和端口给nginx来访问,从而完成一个中间件的目的。在接下来的操作中,我们分阶段来完成配置,首先确保uwsgi和django的连接正常,再确保nginx到uwsgi的连接正常。

django框架已经天然支持wsgi协议,如下图所示,新创建的项目目录中会自带一个wsgi.py文件。这个文件在稍后的操作中会作为django暴露给uwsgi的一个接口

2-django.png

nginx也天然对uwsgi支持,如果是按照上一节的方式安装的nginx,会发现在配置目录/etc/nginx/已经有了和uwsgi有关的配置文件。这个配置文件会在稍后的操作中用于转发请求到uwsgi

(therm) (base) [root@ai-therm nginx]# ll *wsgi*
-rw-r--r-- 1 root root 664 Oct  3  2019 uwsgi_params
-rw-r--r-- 1 root root 664 Oct  3  2019 uwsgi_params.default

uwsgi的安装和基本配置

首先要进行uwsgi的安装,直接pip安装即可

pip install uwsgi

我这里安装的是2.0.18版本

(therm) (base) [root@ai-therm therm]# pip freeze
Django==2.2.10
pytz==2020.1
sqlparse==0.3.1
uWSGI==2.0.18

如果出现类似you need a C compiler to

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值