用用 uwsgi 来部署 django 项目用--http 和--socket 的不同处在哪?
以前一直是用 --socket 来部署的,感觉不管用--http 还是-- socket,最后都要包一层 nginx 在外面,就是比较好奇,两种方式在执行效率上哪个会高一些 ----------------------- 以下是精选回复-----------------------
答:文档有写
答:http 的话,nginx 和 uwsgi 中间走的是 http 协议,文本
socket 的话,nginx 和 uwsgi 中间走的是 wsgi 协议,二进制
感觉 wsgi 协议效率会更高一点
答:通信协议不一样,就这,http 的多了包校验之类的
答:连接方式其实有三种
unix Socket,这个性能效率最高,直接内存交换,但必须应用和 NGX 同在一台服务器上
TCP Socket, 二进制包传递
HTTP, 是基于 TCP 上面的一层文本协议
答:在文档里面看到一句
Using Unix sockets instead of ports
So far we have used a TCP port socket, because it ’ s simpler, but in fact it ’ s better to use Unix sockets than ports - there ’ s less overhead.
docker 部署的话,容器里面如果没有 nginx,静态文件怎么搞啊。
答:生产环境百分之九十九是 unix Socket 的方式,ngnix 是做反向代理用的,因为 uwsgi 不具备路由、过滤等方向代理功能,但论执行效率,可以做性能测试,如果是 http 协议的话,性能是没有 unix Socket 方式好的
0条评论