«

Nginx开启HTTP2提升并发访问速度配置

时间:2026-11-14 07:16     作者:emer     分类: Nginx


前言

HTTP/1.1 一个连接上多个请求需要排队,HTTP/2 多路复用让一个连接并行传输多个资源,网页静态文件多时提速明显。HTTP/2 必须基于 HTTPS,纯 HTTP 无法启用。本文讲解确认 Nginx 是否带 http_v2 模块、监听配置、兼容降级、验证协议的完整步骤。

操作步骤

1. 检查是否支持 HTTP2

nginx -V 2>&1 | grep http_v2_module

有输出说明已编译支持;没有则需重新编译或用宝塔勾选模块。

2. 修改 443 监听行

server {
    listen 443 ssl http2;
    server_name example.com;
    ssl_certificate /www/ssl/example.crt;
    ssl_certificate_key /www/ssl/example.key;
    location / {
        root /www/example;
        index index.html;
    }
}

3. 80 端口保持普通 HTTP 并跳转

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

4. 校验并重载

nginx -t
nginx -s reload

5. 验证是否为 h2

curl -I --http2 https://example.com

浏览器开发者工具网络面板协议列显示 h2 即成功。

常见坑

  1. listen 只写 http2 不写 ssl,报错启动失败,http2 必须配 SSL。
  2. Nginx 版本太老不带模块,需重新编译。
  3. CDN 接入后源站 http2 不一定对外生效,取决于 CDN。
  4. 老客户端自动降级 HTTP/1.1,无需额外处理。
  5. 开 http2 同时开启压缩会增加 CPU,低配机器留意负载。
  6. 多个证书站点共用 server,配置写法不变。
  7. HTTP/2 提升主要在资源多的页面,纯接口站点收益有限。

总结

开启 HTTP2 三要素:Nginx 带 http_v2 模块、listen 443 ssl http2、站点启用 HTTPS。开启后用 curl --http2 或浏览器面板验证 h2。它对图片、JS、CSS 多的页面提升明显,结合 gzip/brotli 压缩和静态缓存效果更好。

遇到问题加QQ23979811 协助处理

标签: Nginx 性能 并发 HTTP2