前言:
在生产环境中,如果需要部署一个Python 的web框架,通常不会直接使用web框架中自带的轻量级web服务。
比如在Django中执行python manage.py runserver
这只是纯粹用python编写的轻量级web服务,它包含在Django中,因此可以快速开发,只是在开发时候使用,Django是注重Web框架,并不注重Web服务器。详见地址
此时如果我们想要将django所开发的网站放入生成环境改如何实现?
uWSGI是什么?
uWSGI是一个Web服务器,实现了WSGI,uwsgi,HTTP协议。
uwsgi是一种线路协议(不是通讯协议,用于uWSGI与其他服务数据通讯),类似于fastcgi。
WSGI(Web Server Gateway Interface)顾名思义:web服务器网关接口,它只是一个规范,描述Web服务器如何与Web应用程序通讯,以及Web应用程序如何连接在一起处理一个请求。可参考PEP-3333
这里实现HTTP协议我们可以使用Nginx。
客户端请求django流程大致过程:
Client <=====> Nginx <======> socket (uwsgi)< ======> uWSGI < ====== > Django
安装uWSGI
安装并测试
1 | uwsgi是实现uWSGI的软件,可以安装uwsgi软件 |
配置文件
1 | 实例 |
uwsgi常用命令
1 | uwsgi --ini /etc/uwsgi.ini |
Nginx配置
1 | more vhost.conf |