2012-05-20 23 views
3

我一直在尝试使用几个WSGI服务器,但无法找到让他们正常关闭的方法。我的意思是优雅的是服务器停止侦听()新的请求,但完成处理所有已经接受()的连接。服务器进程然后退出。如何正常关闭任何WSGI服务器?

到目前为止,我已经花了一些时间与FAPWS,CherryPy的,龙卷风,和的wsgiref。似乎不管我做什么,某些客户端都会收到“通过对等方重置连接”。

有人能指引我到一个WSGI服务器来处理这个问题吗?或者知道一种配置其中一台服务器来完成干净关闭的方法?我想我的下一步是模拟一个简单的http服务器,它可以做我想做的事。

回答

4

HTTPd具有graceful-stop谓词-k,这将允许它在完成请求后关闭所有工作人员。需要mod_wsgi才能使其成为WSGI容器。

+0

如果使用嵌入模式而不是守护进程模式,Apache graceful-stop只会产生所需的影响。使用嵌入模式将需要为Python正确设置Apache,并将特定的Web应用程序作为发行版和设置使用的默认prefork MPM,不适合Python以及静态文件和PHP的更多设置。所以是的,你可以在嵌入模式下使用Apache/mod_wsgi,但要做好功课并正确设置它。 –