slot deposit pulsa slot mahjong slot gacor slot gacor slot gacor resmi slot gacor 2025 slot gacor terpercaya slot gacor 2025 slot gacor hari ini slot gacor hari ini slot gacor hari ini
FrankenPHP 和 Caddy发布:作者声称性能翻倍
17611538698
webmaster@21cto.com

FrankenPHP 和 Caddy发布:作者声称性能翻倍

编程语言 0 2146 2024-06-01 12:51:46

图片

FrankenPHP 是一个用 Go 编写并基于 Caddy Web服务器构建的 PHP 应用服务器。

Caddy 创建者 Matt Holt 表示,它可使 PHP 应用程序的性能提高一倍,并将开发人员和 DevOps 的工作量减少一半;而 Caddy 刚刚更新到 2.8 版本,现在后端已经实验性地支持 HTTP/3。

FrankenPHP 的作者是 Kevin Dunglas,他是 PHP 和 Go 的核心贡献者,也是流行的 PHP 网络框架 Symfony 的核心维护者。

Dunglas 结合自己在不同领域的知识,创建了 FrankenPHP,该版本于 2022 年 11 月在 SymfonyCon 上进行了预览,并于 2023 年 12 月发布了 1.0 版本。

FrankenPHP 专为容器部署而设计,包含 Caddy,后者也是用 Go 编写的,因此单个服务即可为 PHP 应用程序提供支持。FrankenPHP 在 MIT 许可下开源,代码位于 GitHub 上。

https://github.com/dunglas/frankenphp

这样将 PHP 运行时和 Web 服务器打包在一起可以大大提高性能。

Dunglas 提供的一项基准测试显示,Hello World Symfony 应用程序的 Web 请求平均需要 2.53 毫秒才能完成,而通常用于优化传统 Web 服务器性能的 PHP-FPM(FastCGI 进程管理器)则需要 9.45 毫秒。

图片

FrankenPHP 在 Docker 容器中运行 API 平台


FrankenPHP 的其他功能包括自动生成 HTTPS 证书(得益于 Caddy 对 Let's Encrypt 或 ZeroSSL 的支持)、对 PHP 扩展(包括 OPCache 和 XDebug)的原生支持以及将应用程序保存在内存中的工作模式,以实现更快的响应。还支持结构化日志记录、Prometheus 指标和跟踪以及优雅重新加载(动态更新应用程序)。 

预构建的容器适用于常用的 PHP 应用程序,包括 WordPress、Symfony、Drupal、Joomla、Laravel 和 API 平台,最后一个也是由 Dunglas 创建的。 

Holt 是一名爱好者,他在在 Hacker News 上说道:“这有可能改变万维网(我非常谨慎地使用这个词,因为 PHP 为全球绝大多数互联网提供支持……网站性能几乎翻倍,而开发人员/devops 人员的工作量却减少一半,这并不罕见”。

不幸的是事情没那么简单。PHP 被广泛使用的原因很大一部分是因为 WordPress,而 Dunglas表示“与 Laravel 和 Symfony 不同,WordPress 不支持 FrankenPHP 的工作模式(目前还不支持),因此在性能方面没有太多好处(除了使用 103 Early Hints 预加载资产的能力,这可以将页面加载的延迟降低 30%)。”

在 Caddy 方面,据该团队称, 2.8 版是“迄今为止最大的 Caddy 更新之一”,其中包含数百项改进。其中包括对代理后端的快速 HTTP/3 协议的实验性支持、更新的自动证书更新(包括 ARI(ACME 更新信息)支持)以及性能改进(包括现在默认压缩更多媒体类型)。

Caddy 受到一部分用户的高度评价。其中一位用户表示:“它是一款出色的反向代理,并且凭借自动证书和 HTTP/3 支持开创了先河。”

作者:万能的大雄

评论