最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 中 HTTP/2 如何在 server 块中正确开启提升网页传输性能
时间:2026-08-22 12:15:49 编辑:袖梨 来源:一聚教程网
必须在 HTTPS server 块中配置 listen 443 ssl http2,配齐有效证书、TLSv1.2+ 协议及 ALPN 支持;HTTP/2 仅工作于加密通道,明文 h2c 不被主流浏览器支持,且需调优 TLS 与 HTTP/2 专属参数以保障多路复用实效。
在 Nginx 的 server 块中正确开启 HTTP/2,核心不是“加个参数就行”,而是满足前提、配齐依赖、避免降级。只要 HTTPS 基础不牢,http2 参数就形同虚设。
必须配全 HTTPS 才能启用 HTTP/2
主流浏览器(Chrome、Firefox、Safari)只支持加密通道下的 HTTP/2(即 h2),不支持明文 h2c。所以:
-
listen 指令必须同时含
ssl和http2,推荐写法:listen 443 ssl http2;(顺序不影响,但语义更清晰) -
必须提供有效的 SSL 证书链:包括
ssl_certificate(含 fullchain.pem)和ssl_certificate_key - HTTP 端口(如 80)不能加
http2,它只走 HTTP/1.1;可单独配置 301 跳转到 HTTPS
关键 TLS 配置决定 HTTP/2 实际表现
HTTP/2 性能高度依赖 TLS 握手效率和安全性,老旧或低效的 TLS 设置会让连接变慢甚至失败:
- 强制使用现代协议:
ssl_protocols TLSv1.2 TLSv1.3;(禁用 TLSv1.0/TLSv1.1 和 SSLv3) - 选用前向安全、高性能加密套件,例如:
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384; - 启用 OCSP Stapling 加速证书状态验证:
ssl_stapling on; ssl_stapling_verify on;(需配ssl_trusted_certificate) - 设置会话缓存提升复用率:
ssl_session_cache shared:SSL:10m; ssl_session_timeout 4h;
HTTP/2 专属参数调优(按需调整)
默认值适合一般站点,但遇到大 Header、高并发或富前端场景时容易触发限制:
-
http2_max_field_size 16k;(默认 4k):应对长 JWT Token 或分布式追踪头(如traceparent) -
http2_max_header_size 64k;(默认 16k):防止因 Cookie 或自定义头过多导致 431 错误 -
http2_max_requests 5000;(默认 1000):提升连接复用率,减少 TLS 握手开销 -
http2_max_concurrent_streams 256;(默认 128):允许单连接承载更多并行流,适合资源密集型页面
配套连接与传输优化不可少
HTTP/2 的多路复用优势,需要底层 TCP 和 Nginx 连接管理配合才能真正释放:
-
keepalive_timeout 300;(建议 60–300 秒):与客户端 keep-alive 策略对齐,避免过早断连 -
keepalive_requests 10000;:配合http2_max_requests,延长连接生命周期 - 启用高效传输:
sendfile on; tcp_nopush on; tcp_nodelay on; - 压缩响应体:
gzip on;并精确设置gzip_types,避免对图片等二进制内容重复压缩
相关文章
- TapTap官方最新版如何下载安装 08-22
- 找不到Tap APP下载安装包如何解决 08-22
- 超级店长网页版在哪里 08-22
- 小米ax3600路由器怎么重启(小米ax3600路由器重启方法) 08-22
- 等等党又输了!GTA5或永久涨价! 08-22
- StarNote如何同时打开两个笔记 08-22