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

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

写成 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 ,简单,轻量。

你可能感兴趣的:(部署Django 应该使用apache + nginx还是uwsgi+ nginx)