部署Django 应该使用apache + nginx还是uwsgi+ nginx

apache + nginx 和uwsgi+ nginx 哪一个比较好,为什么?
uwsgi和apache有什么区别??

阅读 11.9k
4 个回答

apache + nginx 和uwsgi+ nginx 哪一个比较好,为什么?

uwsgi + nginx 比较好,因为前者是“脱裤子放屁——多此一举”。

uwsgi和 apache 有什么区别?

写成 uWSGI 比如好。 uWSGI 是一个网关相关的应用服务器,而 apache 是 web 服务器。

uWSGI 支持 uwsgi, wsgi 网关协议(fastcgi 同样是一种网关协议),你写的代码,就是通过某种网关协议与 uWSGI 搞在一起的。(uWSGI 加载你的代码)这方面的理解,你可以去通过了解最简单的 CGI 协议来看看,它们道理是一样的。只是 uWSGI 在实现网关协议的基础上,还搞了进程管理这些额外功能。

apache 这种 web 服务器,它的主要功能是实现 HTTP 服务端协议,及基于 HTTP 协议的相关功能实现,比如不同的 Host 头对应不同的后端配置,不同的 path 对应不同的配置,缓存(头怎么响应)等等,都是 HTTP 协议相关的内容,也都是 apache 这些 web 服务器的功能范围。当然,这些 web 服务器也许自己可以直接支持某些网关协议,甚至直接支持某些语言的代码,这种情况, web 服务器中直接运行应用是可能的。

好了,现在的问题是, uWSGI 与 apache 之间又怎么连接呢?最简单的方式,就是使用 HTTP 协议,这种配置下,前面的 apache 就像是一个简单的“反向代理服务器”一样的角色了。

另外, web 服务器的选择,个人建议还是选 nginx ,简单,轻量。

你可以试试gunicorn+supervisor+nginx.
gunicorn是Python实现的的Web server,配置也比较简单。
supervisor也是Python实现的,它用于进程管理。
这两个都是可以直接pip安装的。

你这问题问的有问题,我只听过apache+wsgi和nginx+uwsgi
至于你说有什么区别,你可以参考apache和nginx的优缺点
http://www.cnblogs.com/huangy...

建议使用nginx配合uwsgi,因为apache的mod_wsgi对python支持不怎么好。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题