pantheon-systems/pantheon-wordpress-edge-integrations

此软件包已被废弃,不再维护。未建议替代软件包。

WordPress插件,支持Pantheon Edge集成和个人化功能

0.3.0 2022-07-13 14:48 UTC

README

稳定版本:0.3.0
需要至少:5.8
测试到:5.9
需要PHP:7.4
许可:MIT
标签:pantheon, personalization, edge integrations, geolocation, geoip, interest tracking, vcl, developer 贡献者:jazzs3quence, jspellman, getpantheon

WordPress插件和开发者工具包,用于支持Pantheon Edge集成和个人化功能。

存档项目

自2024年8月起,该项目已被存档,因为它不再接收活跃的开发。此SDK中提供的工具和相关的项目架构仍然有效,并将继续在Pantheon AGCDN上工作。然而,我们不会对问题或拉取请求做出回应,也不会构建比目前已有的工具更多的工具。

Unsupported Pantheon WordPress Edge Integrations Packagist release Commits since latest release

描述

此插件提供工具,用于集成我们的高级全局CDN提供的Pantheon Edge功能。通过地理位置和兴趣跟踪功能本机集成,为您的网站构建增强个性化的功能。

如果您想为此插件做出贡献,请参阅CONTRIBUTING.md文件以获取更多信息。

常见问题解答

我如何检查CDN是否发送了 vary 头部信息?

有两种方法可以检查CDN发送的vary头部信息,以确保您的网站能够根据该信息进行个性化。

浏览器开发者工具

在浏览器检查器(右键单击→Firefox/Chrome中的“检查”)中,转到“网络”标签。您可能需要重新加载页面。列表中的第一个元素应显示网站URL。单击该项,确保在右侧面板中选择“头部”标签。在“响应头部”部分,根据您的AGCDN Varnish配置,您可以查找以下三项:audienceaudience-setinterestinterest只有在浏览器中设置了兴趣(并在VCL中启用)时才会显示,但如果为您的网站配置了地理位置,则应显示audienceaudience-set或两者。如果这些在响应头中显示,则CDN正在向您的浏览器发送数据,并且个性化配置正确。

使用cURL

您还可以通过向您的网站URL发出cURL请求来查看头部信息。

$ curl --head ${your-domain}

在终端应用程序(如上面的示例)中运行cURL请求将输出请求URL的响应头部。

HTTP/2 200
cache-control: public, max-age=600
content-type: text/html; charset=UTF-8
link: <https://your-domain.com/wp-json/>; rel="https://api.w.org/"
link: <https://your-domain.com/wp-json/wp/v2/posts/123>; rel="alternate"; type="application/json"
link: <https://your-domain.com/?p=123>; rel=shortlink
server: nginx
strict-transport-security: max-age=300
traceparent: 00-d9c96d620d6840908df7fcc1c87355e2-3c672567583b6ecf-00
x-cloud-trace-context: d9c96d620d6840908df7fcc1c87355e2/4352488690669022927;o=0
x-pantheon-styx-hostname: styx-fe4-a-c8f79d547-q9h4q
x-pingback: https://your-domain.com/xmlrpc.php
x-styx-req-id: 83e9fe48-b052-11ec-aac2-b6d4b691b347
age: 19
accept-ranges: bytes
via: 1.1 varnish, 1.1 varnish, 1.1 varnish
date: Wed, 30 Mar 2022 17:55:18 GMT
x-served-by: cache-mdw17372-MDW, cache-sjc10033-SJC, cache-sjc10027-SJC
x-cache: MISS, HIT, MISS
x-cache-hits: 0, 6, 0
x-timer: S1648662918.165521,VS0,VE3
vary: Accept-Encoding, Audience-Set, Interest, Cookie, Cookie
audience: geo:US
audience-set: country:US|city:salt lake city|region:UT|continent:NA|conn-speed:broadband|conn-type:wired
content-length: 58566

同样,您正在查找返回的响应头数据中的audienceaudience-set头部,如上面的示例中请求底部所示。

兴趣头部只有在存在定义了兴趣的cookie时才会从CDN返回,但是您也可以通过传递--cookie值使用cURL进行测试

$ curl --head --cookie "interest=through-the-looking-glass" ${your-domain}

这将返回如下响应

HTTP/2 200
cache-control: public, max-age=600
content-type: text/html; charset=UTF-8
link: <https://your-domain.com/wp-json/>; rel="https://api.w.org/"
link: <https://your-domain.com/wp-json/wp/v2/pages/8>; rel="alternate"; type="application/json"
link: <https://your-domain.com/>; rel=shortlink
server: nginx
strict-transport-security: max-age=300
traceparent: 00-79357addac994f0da9fada52ede5174e-de0cbffa799c0e62-00
x-cloud-trace-context: 79357addac994f0da9fada52ede5174e/16000374658643529314;o=0
x-pantheon-styx-hostname: styx-fe4-b-97f8fd4b8-2h5j7
x-styx-req-id: b16a334c-b052-11ec-90c9-c2ea4801bb9c
age: 0
accept-ranges: bytes
via: 1.1 varnish, 1.1 varnish, 1.1 varnish
fastly-original-body-size: 0
date: Wed, 30 Mar 2022 17:56:15 GMT
x-served-by: cache-mdw17362-MDW, cache-sjc10051-SJC, cache-sjc10024-SJC
x-cache: MISS, MISS, MISS
x-cache-hits: 0, 0, 0
x-timer: S1648662975.164371,VS0,VE226
vary: Accept-Encoding, Audience-Set, Interest, Cookie, Cookie
audience: geo:US
audience-set: country:US|city:salt lake city|region:UT|continent:NA|conn-speed:broadband|conn-type:wired
interest: through-the-looking-glass
content-length: 57183

在上面的示例输出中,您可以看到返回了具有值为through-the-looking-glassinterest键,这与通过cURL请求发送的cookie中发送的内容相匹配。

如何验证我的 vary 头是否已发送到 CDN,以根据兴趣/地理位置对内容进行变体处理?

与上述类似,验证 vary 头是否正确发送,可以在浏览器工具中进行,也可以通过 curl 来实现。

浏览器开发者工具

再次使用浏览器检查器→网络标签,重复上述过程(如上所述)。这次,你需要寻找 vary 键。这告诉我们 CDN 被告知应根据什么来变体内容。如果插件正确地发送了 Vary 头,你应该会看到类似以下内容:

vary: Accept-Encoding, Audience-Set, Interest, Cookie, Cookie

这代表了 WordPress Edge Integrations 插件设置的默认 vary 头。可能存在任意数量的 Audience-SetAudienceInterest 或其他你在代码中设置的 vary 头的组合。

使用cURL

你也可以使用 cURL 获取相同的信息,如上所述。当读取 curl --head ${your-domain} 请求以查找 Vary 头时,你需要在响应中查找 vary 键。同样,它会输出类似以下内容:

vary: Accept-Encoding, Audience-Set, Interest, Cookie, Cookie

这告诉你代码当前正在发送哪些 Vary 头。

如何排查未发送 Vary 头的问题?

如果你正在查看页面的响应头,并且预期发送 Vary 头的页面没有发送(例如,不是包含不发送 Vary 头逻辑的页面),首先需要检查的是 get_supported_vary_headers 的输出。 get_supported_vary_headers 应输出仅包含当前支持的 Vary 头的数组(与 pantheon.ei.supported_vary_headers 过滤器相比,该过滤器接收头数组和它们是否受支持或不受支持)。如果输出不是你预期的(空、多维数组等),那么你知道问题出在如何定义 Vary 头上。 get_supported_vary_headers 在调用 header 函数之前立即运行,所以它是 Vary 头可能崩溃的最后一个地方。实验 pantheon.ei.supported_vary_headers 过滤器可能也很有价值,该过滤器用于在返回只包含 Vary 头数组键的数组之前过滤输出。