我正在研究反向代理的设置,比如 apache 前面的 nginx,以减少 Web 服务器上提供静态内容的负载。
对于任何给定的 URL,我们的网页将具有静态和动态的不同部分。反向代理如何知道何时自行提供资源,或从其背后的源 Web 服务器提取资源?显然,图像和 JavaScript 文件等内容是静态的,但其中一些内容(如验证码)也是动态生成的。我们的 drupal 站点实际上会查看 URL 中的路径并相应地提供不同的内容,将路径元素作为参数。
它是否只需要在反向代理端进行大量配置,并且配置器需要深入了解站点的哪些部分是动态的,哪些部分是静态的?
答案1
反向代理可以像正向代理一样区分静态内容和动态内容:使用 HTTP 标头中的缓存信息。
HTTP 包含一些字段,专门用于告诉浏览器(和代理)可以缓存什么以及缓存多长时间;反向代理可以(并且确实)分析这些字段以了解缓存的响应何时过期。