http2_push

http2_push 指令在 NGINX 中为特定资源启用 HTTP/2 服务器推送。 — NGINX HTTP Core

http2_push
httpserverlocation
语法http2_push URI;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

在 NGINX 中,http2_push 指令用于对应该主动发送给客户端的资源发起服务器推送,从而提升 Web 应用的加载性能。当在 http、server 或 location 上下文中定义时,该指令会在对指定 URI 发出相应请求时推送被指定的资源。这在 HTTP/2 场景中特别有效,因为 HTTP/2 允许服务器并发地为单个客户端请求发送多个响应。 使用 http2_push 时,该指令接受单个参数,用以指定将要被推送的资源。通常这些是静态文件,例如样式表或脚本,客户端在接收到页面后需要这些文件以完整呈现页面。通过提前推送这些文件,可以减少用户感知的加载时间,因为客户端无需为这些资源发起额外请求。对这些推送进行适当管理非常重要,推送不必要的资源会导致带宽浪费并降低性能。 在使用 http2_push 指令时,确保被推送的资源确实是客户端初始渲染页面所必需的,这不仅能提升性能,还能避免服务器端资源的过度使用。此外,还需确认客户端支持 HTTP/2,因为回退到旧的 HTTP 版本将无法有效利用该指令。

配置示例

http2_push /static/style.css;
http2_push /static/script.js;

应仔细选择资源,以避免网络传输中的不必要开销。

确保客户端支持 HTTP/2,以有效利用服务器推送功能。

推送的资源应保持稳定,不应频繁更改,以避免与缓存相关的问题。