目前我正在研究一个由api平台支持的设置,目标如下:
- PHP后端必须产生最小的资源负载,因此我根本不想嵌入关系
- PHP后端应该能够在其他运行时中运行,例如Swool
- Web服务器应该利用api平台分发的内置vulcain支持,通过HTTP2Push推送相关资源
我找不到那么多关于这些设置的资源——至少没有足够的形式来回答后续的问题。
我的初始设置只是基于api平台发行版2.6.8
所以,到目前为止,我已经学会了以下几点:
- 开箱即用,caddy+http2推送设置与基于
php:8.1-fpm-alpine
的PHP容器一起工作,而caddy显然直接使用php_fastcgi
- 当我摆弄当前可用的缓存处理程序时,我能够使http缓存正常工作,但我很难找到任何关于缓存无效工作的信息。api平台文档主要关注清漆;api平台核心中也只有一个CCD_ 3。如果caddy缓存处理程序以某种方式允许
BAN
请求或类似的东西,那么编写自定义缓存就不应该那么困难了-在哪里可以找到相关信息?我知道处理程序是基于Souin的,但由于我不熟悉,我根本不知道Souin是如何(以及是否(支持缓存无效的 - 当将php容器更改为(在我当前的测试场景中(基于Swoole时,
php_fastcgi
不能在caddy中使用——相反,我最终使用了reverse_proxy
(如vulcain文档中所述(,它基本上可以工作并提供正确的http响应,但不会推送任何使用Preload
头请求的资源(正如我所说,当php后端基于php-FPM时,它可以工作(。如何调试此处发生的情况?Caddy不会提供任何关于push
处理的信息,vulcain Caddy模块也不会
长话短说(er(:总结我的问题
- 我怎么能弄清楚为什么caddy+vulcain不能在reverse_proxy设置中工作
- caddy缓存处理程序的当前状态是否正常/受api平台发行版支持
- 如何实现/支持caddy缓存处理程序的
BAN
请求(或其他细粒度缓存无效(
Souin支持使用PURGE
HTTP方法进行无效处理。我已经写了一篇PR来在api平台/核心项目中设置Souin,但他们正忙于v3.0的发布。也许在不久的将来,他们会审查并可能合并,我不知道。但是,如果你在清漆清除器上使用装饰器,并使用我在PR中编写的代码,你将能够自动清除到基本路由的相关端点。