在Windows/IIS的反向代理下设置WSGI多个进程和进程回收?

0 投票
1 回答
1041 浏览
提问于 2025-04-17 19:29

我之前在IIS上部署过CPython应用,使用的是isapi-wsgi,在一些情况下效果不错。

不过在我现在的项目中,使用isapi-wsgi遇到了麻烦:Windows Server 2008 R2、64位Python和pyodbc模块的组合不太好用,除非我重新编译pyodbc模块(至少这是我花了半小时在网上查资料得出的结论)。

所以,我决定在这个项目中尝试另一种在Windows上部署WSGI的方法。

我的计划是:

我有几个问题:

  • 如果我的Python进程能启动多个长时间运行的请求处理进程,并且能自动分配请求给它们,那就太好了。
  • 如果这些Python请求处理进程能在处理一定数量的请求后自动回收,那就更好了。
  • 有没有人能给我一些实现以上目标的建议?

1 个回答

2

我之前成功使用过Paste和CherryPy。Paste目前不支持Python 3,而且未来也不太可能会支持。如果你在意Python 3的话,可能需要考虑其他的选择,而不是Paste。

我也尝试过用Twisted作为WSGI服务器来提供服务。这种方法是可行的,但我从来没有把它投入生产使用,因为我觉得它没有比我已经在用的东西带来我想要的好处。

我对Werkzeug的服务器不太熟悉,所以不太敢评论它在生产环境中是否可靠,或者说不使用它是否意味着不使用反向代理。

从根本上说,任何在Windows上运行的知名WSGI服务器,可能在某种标准下都是“最好”的选择,这个“最好”是根据你的需求来定的。

撰写回答