我正在尝试实现 http2_push 来获取与所有页面一起发送的 css。这是我的示例代码。我还没有看到 css 被推送。我究竟做错了什么。 HTTP2 已启用。
location / {
#add_header Set-Cookie "session=1";
#add_header Link $push_resources;
proxy_pass http://xx.xxx.xxx.xx:6081;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Port 8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Country $geoip_country_code;
http2_push /pub/static/frontend/Archigrafix/basic/en_US/css/styles-l.css;
http2_push /pub/static/frontend/Archigrafix/basic/en_US/StripeIntegration_Payments/css/wallets.css;
http2_push /pub/static/frontend/Archigrafix/basic/en_US/Magefan_Blog/css/blog-custom.css;
http2_push /pub/static/frontend/Archigrafix/basic/en_US/Magefan_Blog/css/blog-m.css;
http2_push /pub/static/frontend/Archigrafix/basic/en_US/css/footer.css;
http2_push /pub/static/frontend/Archigrafix/basic/en_US/css/font-awesome.min.css;
http2_push /pub/static/frontend/Archigrafix/basic/en_US/css/header.css;
http2_push /pub/static/frontend/Archigrafix/basic/en_US/css/archigrafix.css;
http2_push /pub/static/frontend/Archigrafix/basic/en_US/css/navigationmenu.css;
http2_push /pub/static/frontend/Archigrafix/basic/en_US/css/theme.min.css;
http2_push /pub/static/frontend/Archigrafix/basic/en_US/css/styles-m.css;
}
Nginx 在 1.25.1 中删除了推送支持:https://forum.nginx.org/read.php?2,297538
Chrome 在这篇文章中进行了合理的解释(完全公开,我撰写了这篇 Chrome 文章): https://developer.chrome.com/blog/removing-push/
普遍的共识是 HTTP/2 Push 太难正确使用,不应该使用。