看了一些網路上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/