如何配置 HTTPS Nginx + Pagespeed + Varnish + Apache?

如何配置 HTTPS Nginx + Pagespeed + Varnish + Apache?

我目前有以下设置:

Nginx (https) => ssl 卸载 => Varnish (http) => Apache (http)

我想添加 mod_pagespeed 或 nginx pagespeed。有什么想法可以添加在哪里吗?我应该考虑将 pagespeed 添加到 Apache 还是 Nginx?

以下页面有一些信息,但我不确定如何处理我们的具体设置。

https://developers.google.com/speed/pagespeed/module/downstream-caching

我正在考虑探索以下选项之一:

将 pagespeed 添加到 nginx,使 pagespeed 使用来自 varnish / apache 的缓存页面并即时执行 将 pagespeed 添加到 Apache,并配置它,以便根据用户代理/屏幕分辨率缓存页面。如果我理解正确,我上面指出的文章是指第二个选项。但我认为设置第一个选项可能更容易?

先谢谢您的帮助!

答案1

我可能会将 PageSpeed 添加到 Apache。这样,页面只需优化一次,缓存在 Varnish 中,然后由 Nginx 提供。这将更加高效,减少 CPU 使用率,如果您将 PageSpeed 放在 Nginx 上,它可能必须在每次请求时都执行此操作。

注意:这是基于我读过的文档,而不是实际经验。

答案2

要使用 Nginx PageSpeed 模块,您必须重新编译 Nginx 以进行安装,然后每次需要对 PageSpeed 或 Nginx 进行更新时,都要重新编译 Nginx。相比之下,Apache 可以将 PageSpeed 代码加载为外部模块,从而使 Apache 路由更易于管理。

我刚刚完成了 Nginx PageSpeedd 的安装。使用默认设置添加它只会将我们的 PageSpeed Insights 得分提高 4 个端口(满分 100)。我认为不值得为了相对适中的增益而维护自定义包。此外,Nginx PageSpeed 模块导致 PageSpeed Insights 工具注意到交付速度变慢,这可能是由于它执行的内容过滤的 CPU 开销造成的。我不得不安装一个 Wordpress 缓存插件来缓解这种情况。

答案3

由于我还不了解 Varnish,所以我不确定集成这些产品的最佳方法是什么。

但是,这是我获得 pagespeed 模块的地方。https://www.getpagespeed.com/redhat

大部分工作都是在 NGINX 中完成的。

Pagespeed 扩展缓存具有一些很酷的功能,我认为它们可以与 Varnish 混合集成。

我还发现这可能有用 https://gist.github.com/section-io-gists/dcda5a05d1006e3b8c8bd17e7105749c

哦,别忘了 Brotli 压缩 https://www.getpagespeed.com/server-setup/nginx/install-nginx-with-brotli-module-in-centos-redhat-7

我要尝试:

NGINX (SSL 终止、PageSpeed、PageSpeed 缓存、Brotli) <-- Varnish <-- Apache (应用程序)

将 pagespeed 迁移到 Apache 可能更明智

相关内容