pantheon-systems / pantheon-wordpress-edge-integrations
WordPress插件,支持Pantheon Edge集成和个人化功能
Requires
- pantheon-systems/pantheon-edge-integrations: ^v1.1.0-alpha1
Requires (Dev)
- consolidation/robo: ^3.0
- humanmade/coding-standards: ^1.1
- ironbound/wp-rest-api-schema-validator: dev-master
- phpunit/phpunit: ^9.5
- wp-coding-standards/wpcs: 2.3.0 as 2.2.1
- yoast/phpunit-polyfills: ^1.0
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上工作。然而,我们不会对问题或拉取请求做出回应,也不会构建比目前已有的工具更多的工具。
描述
此插件提供工具,用于集成我们的高级全局CDN提供的Pantheon Edge功能。通过地理位置和兴趣跟踪功能本机集成,为您的网站构建增强个性化的功能。
如果您想为此插件做出贡献,请参阅CONTRIBUTING.md文件以获取更多信息。
常见问题解答
我如何检查CDN是否发送了 vary 头部信息?
有两种方法可以检查CDN发送的vary头部信息,以确保您的网站能够根据该信息进行个性化。
浏览器开发者工具
在浏览器检查器(右键单击→Firefox/Chrome中的“检查”)中,转到“网络”标签。您可能需要重新加载页面。列表中的第一个元素应显示网站URL。单击该项,确保在右侧面板中选择“头部”标签。在“响应头部”部分,根据您的AGCDN Varnish配置,您可以查找以下三项:audience
、audience-set
和interest
。interest
只有在浏览器中设置了兴趣(并在VCL中启用)时才会显示,但如果为您的网站配置了地理位置,则应显示audience
、audience-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
同样,您正在查找返回的响应头数据中的audience
或audience-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-glass
的interest
键,这与通过cURL请求发送的cookie中发送的内容相匹配。
如何验证我的 vary 头是否已发送到 CDN,以根据兴趣/地理位置对内容进行变体处理?
与上述类似,验证 vary 头是否正确发送,可以在浏览器工具中进行,也可以通过 curl
来实现。
浏览器开发者工具
再次使用浏览器检查器→网络标签,重复上述过程(如上所述)。这次,你需要寻找 vary
键。这告诉我们 CDN 被告知应根据什么来变体内容。如果插件正确地发送了 Vary 头,你应该会看到类似以下内容:
vary: Accept-Encoding, Audience-Set, Interest, Cookie, Cookie
这代表了 WordPress Edge Integrations 插件设置的默认 vary 头。可能存在任意数量的 Audience-Set
、Audience
、Interest
或其他你在代码中设置的 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 头数组键的数组之前过滤输出。