看了网上wsgi的一些介绍,可基本上都是说wsgi是什么,没有说wsgi具体如何工作的。
简单地说,我想知道一个用django+apache搭建的web服务器上,apache收到客户端的请求,是如何将请求传递给django代码的。
django的代码是运行在apache的进程里的,还是自己有一个进程,通过某种方式进行通信?
如果是跑在apache的进程里的,那么每次有新的apache进程创建,都会重新载入django的代码?
其实就是个中间通信协议,正如楼上说的,用http也可以,wsgi好像效能要好一点,目前最好的是不是wsgi,我也记不清楚了,我这边用的是uwsgi.Java里面HTTPServer和应用容器之间也有类似的通信协议。两次隔离有个基本的好处就是静态文件可以直接用httpServer服务提供就Ok了。 httpServer和容器是完全独立的进程,准确的说可以不止两个,uwsgi可以随便开多少个都行,完全可配置的,比如同时开4-6个uwsgi服务进程提供容器服务。
Apache将请求直接转发给Django,和直接访问Django没有什么差别
Apache
Django
官方文档
https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/modwsgi/
其实就是个中间通信协议,正如楼上说的,用http也可以,wsgi好像效能要好一点,目前最好的是不是wsgi,我也记不清楚了,我这边用的是uwsgi.Java里面HTTPServer和应用容器之间也有类似的通信协议。两次隔离有个基本的好处就是静态文件可以直接用httpServer服务提供就Ok了。
httpServer和容器是完全独立的进程,准确的说可以不止两个,uwsgi可以随便开多少个都行,完全可配置的,比如同时开4-6个uwsgi服务进程提供容器服务。
Apache
将请求直接转发给Django
,和直接访问Django
没有什么差别官方文档
https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/modwsgi/