You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Nginx 1.13.10中配置HTTP/2 Push的技术咨询

测试Nginx HTTP/2 Push功能的配置与验证方案

首先,先把你提供的Nginx配置片段整理出来(方便后续参考):

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name 192.168.133.21;
    return 302 https://$server_name$request_uri;
}

# 加载默认服务器块的配置文件
server {
    listen 443 ssl http2;
    server_name 192.168.133.21;
    include conf.d/self-signed.conf;
    #ssl配置
    ssl on;
    location / {
        root /var/www/wordpress; # 这里推测是你的WordPress根目录,补全便于后续配置
        index index.php index.html index.htm;
        # 后续将在这里添加HTTP/2 Push相关配置
    }
}

接下来,咱们一步步配置和验证HTTP/2 Push功能:

一、确认Nginx版本支持

你的Nginx是1.13.10,这个版本已经原生支持HTTP/2 Push(官方从1.13.9版本开始正式引入http2_push指令),所以版本层面没有问题,不用额外编译模块。

二、添加HTTP/2 Push配置

针对WordPress站点,我们主要推送页面加载必需的核心静态资源(比如主题CSS、JS、WordPress自带的基础静态文件),有两种实用配置方式:

方式1:直接用http2_push指定推送资源

在location /块里添加具体的资源路径,适合固定的核心资源:

location / {
    root /var/www/wordpress;
    index index.php index.html index.htm;

    # 推送WordPress主题的核心样式和脚本(替换成你实际的主题目录名)
    http2_push /wp-content/themes/your-theme/style.css;
    http2_push /wp-content/themes/your-theme/js/main.js;
    # 可以继续添加jQuery这类全局依赖资源
}

方式2:通过Link头自动推送(更灵活,适配动态内容)

如果你的WordPress主题或插件会在页面输出Link预加载头,可以开启Nginx的自动推送功能:

server {
    listen 443 ssl http2;
    server_name 192.168.133.21;
    include conf.d/self-signed.conf;
    ssl on;

    # 开启自动解析Link头,推送标记为preload的资源
    http2_push_preload on;

    location / {
        root /var/www/wordpress;
        index index.php index.html index.htm;
    }

    # 补充WordPress必需的PHP请求处理配置(根据你的PHP版本调整socket路径)
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

这种方式下,只要页面输出类似<link rel="preload" href="/wp-content/themes/your-theme/style.css" as="style">的标签,或者响应头里有Link: </wp-content/themes/your-theme/style.css>; rel=preload; as=style,Nginx就会自动推送对应资源。

三、验证HTTP/2 Push是否生效

配置完成后,先重启Nginx让配置生效:

sudo systemctl restart nginx

然后用两种方法验证:

方法1:Chrome开发者工具直观验证

  1. 打开Chrome访问你的站点https://192.168.133.21(自签名证书会提示不安全,测试环境忽略即可)
  2. 按F12打开开发者工具,切换到Network标签
  3. 刷新页面,找到你推送的资源(比如style.css),查看Initiator列,如果显示Push,说明推送成功。

方法2:用curl命令命令行验证

# 查看响应头是否包含推送相关标记
curl -I --http2 https://192.168.133.21

# 查看具体的推送承诺信息
curl --http2 -v https://192.168.133.21 2>&1 | grep "PUSH_PROMISE"

如果输出里包含你配置的资源路径,说明HTTP/2 Push已经正常工作。

额外注意事项

  • 不要过度推送资源,只推送页面首屏必需的核心文件,过多推送反而会浪费带宽拖慢加载速度
  • 自签名证书在测试环境没问题,但生产环境一定要用可信CA颁发的证书
  • 如果WordPress启用了缓存插件,要确保缓存页面也包含正确的preload标签或Link头(针对方式2)

内容的提问来源于stack exchange,提问作者D. Y.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:28:59