Early Hints 怎么在 Nginx 上配置才生效?
我看到 Early Hints 能提前推送资源链接,加快页面加载,就在本地 Nginx 试了下,但浏览器 Network 面板里完全没看到 103 Early Hints 响应。
我加了 http2_push_preload on;,也返回了 Link 头,但还是不行。是不是还要开什么模块?我的 Nginx 版本是 1.24。
location / {
add_header Link '</style.css>; rel=preload; as=style';
add_header Link '</app.js>; rel=preload; as=script';
http2_push_preload on;
}
http2_push_preload是 HTTP/2 Push 用的,跟 Early Hints 两码事。升级到 Nginx 1.25+,配置改成这样:
另外提醒一句:浏览器支持也很有限,目前只有 Chrome/Edge 之类的 Chromium 浏览器支持,而且还得在
chrome://flags里开Early Hints Preload才能看到效果。你有两个选择:
一是升级 Nginx 到 1.25.1 以上(注意这是主线版,不是稳定版),然后这样配置:
二是如果你不想升级 Nginx,用 OpenResty + Lua 来实现,或者直接上 Cloudflare 之类的 CDN,它们天然支持 Early Hints。
本地开发测试的话,建议直接升级 Nginx 版本最省事。