在 Unix 上,我通常在我的应用程序服务器前面的 Varnish 前面部署 nginx。nginx 和 Varnish 都在这里充当反向代理。Varnish 维护一个缓存并支持诸如 If-Modified-Since、Cache-Control 响应头和来自应用程序的 PURGE 请求之类的东西。nginx擅长接收大量的连接。我还用它来提供一些静态内容,启用 gzip 压缩等。
在 Windows 上,我可以在 IIS 前使用 Squid 进行管理。我计划将我的 (Python) 应用程序部署为 ISAPI 通配符过滤器(使用 isapi-wsgi 包),因此该应用程序将存在于由 IIS 管理的线程池中。
但是,Windows 上的 Squid 开发似乎已经停滞,我更愿意将 IIS 保留在端口 80 上,这样我就可以直接从磁盘提供某些东西。我还怀疑 IIS 在处理大量连接方面比 Windows 上的 Squid 更有弹性。
人们通常在这里使用什么?一种选择是在 IIS 前使用另一个独立的缓存代理。另一个选项可能是作为 ISAPI 过滤器安装的东西,它会拦截请求并响应诸如 If-Modified-Since、对图像和其他缓存资源的请求以及来自应用程序的 PURGE 请求。
这样的事情存在吗?或者是唯一真正的选择 Squid 和 MS ISA(太贵了)。
干杯,马丁