http2_push_preload
为动态预加载的资源启用 HTTP/2 服务端推送。 — NGINX HTTP Core
http2_push_preload
httpserverlocation
语法http2_push_preload on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag
说明
`http2_push_preload` 指令用于指示服务器在 HTTP/2 环境中主动向客户端发送资源,而无需等待客户端请求这些资源。该功能特别有助于通过在需要时立即传送关键资源来优化页面加载速度并提升用户体验。当设置为 `on` 时,该指令允许服务器根据客户端请求的当前页面自动推送已标记为预加载的关联资源。 该指令可以在 NGINX 配置文件的 `http`、`server` 或 `location` 上下文中指定。通过启用 `http2_push_preload`,服务器运维人员可以提升应用的加载性能,尤其是对于拥有多个资源依赖的内容密集型站点。然而,不必要的推送会浪费带宽并在配置不当时导致性能下降。因此,应谨慎考虑哪些资源应被标记为推送,以避免发送客户端不需要的过多响应。
配置示例
server {
listen 443 ssl http2;
server_name example.com;
http2_push_preload on;
location / {
root /var/www/html;
index index.html;
add_header Link "/styles/main.css; rel=preload; as=style";
}
}⚠
过度使用 server push 会导致带宽使用量增加。
⚠
并非所有浏览器都支持 HTTP/2 server push,这会导致用户之间出现不一致的行为。
⚠
始终确保通过 server push 推送的资源对客户端确实有用,以避免浪费资源。