有人能给我一个关于WSGI幕后细节和Python的其他web接口方法的高级技术概述吗?

2024-05-23 16:18:31 发布

您现在位置:Python中文网/ 问答频道 /正文

首先:

  1. 我知道什么是WSGI以及如何使用它
  2. 我了解“其他”方法(apachemodpython、fcgi等)是什么,以及如何使用它们
  3. 我理解他们的实际差异

我不明白的是,在幕后,各种“其他”方法是如何工作的。您的服务器(Nginx等)是否将请求路由到您的WSGI应用程序,并且UWSGI会为路由到它的每个请求创建一个新的Python解释器?WSGI与其他更传统的/猴子补丁的方法有多大的不同(除了WSGI提供的不同、更简单的Python接口之外)?我错过了什么灯泡时刻?在


Tags: 方法服务器应用程序wsgi路由nginx差异传统
1条回答
网友
1楼 · 发布于 2024-05-23 16:18:31

除了CGI之外,几乎从未为每个请求创建一个新的Python解释器。阅读:

http://blog.dscpl.com.au/2009/03/python-interpreter-is-not-created-for.html

这是针对mod_python编写的,但也适用于mod_wsgi和任何使用持久进程的wsgi宿主机制。在

另请阅读:

http://www.python.org/dev/peps/pep-0333/#environ-variables

你会发现wsgi.run_一次'描述的变量。这用于向WSGI应用程序指示何时使用托管机制,该机制将看到一个进程只处理一个请求,然后退出,即CGI。因此,编写一个测试helloworld应用程序,该应用程序转储WSGI环境,并查看它为您正在使用的环境设置了什么。在

还要注意多进程'和'多线程'变量。它们会告诉您是否正在使用多进程服务器,以便应用程序的多个实例同时处理请求。的多线程'变量告诉您进程本身是否在同一进程中处理并发线程中的多个请求。在

有关Apache嵌入式系统的多进程和多线程模型的更多信息,如mod_python和mod_wsgi,以及mod_wsgi守护程序模式,请参阅:

http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading

相关问题 更多 >