插件窝 干货文章 nginx中如何升级到支持HTTP2.0

nginx中如何升级到支持HTTP2.0

Nginx HTTP ssl 配置 281    来源:    2025-04-22

Nginx 升级以支持 HTTP/2.0 的完整指南

HTTP/2 是 HTTP 协议的主要修订版本,能显著提升网页加载速度。以下是升级 Nginx 以支持 HTTP/2 的详细步骤:

前提条件

  1. Nginx 1.9.5 或更高版本
  2. OpenSSL 1.0.2 或更高版本(推荐使用最新版)
  3. 服务器支持 ALPN(应用层协议协商)

升级步骤

1. 检查当前 Nginx 版本和配置

nginx -v
nginx -V  # 查看编译参数,确认是否已支持HTTP/2

2. 升级 Nginx(两种方法)

方法一:从官方仓库安装(推荐)

# Ubuntu/Debian
sudo apt update
sudo apt install --only-upgrade nginx

# CentOS/RHEL
sudo yum update nginx

方法二:从源码编译安装

# 下载最新稳定版
wget http://nginx.org/download/nginx-1.25.3.tar.gz
tar -zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3

# 配置编译参数(保留原有模块)
./configure --with-http_ssl_module --with-http_v2_module [其他原有参数]

# 编译安装
make
sudo make install

3. 配置 Nginx 启用 HTTP/2

修改您的 Nginx 站点配置文件(通常在 /etc/nginx/sites-available//etc/nginx/conf.d/):

server {
    listen 443 ssl http2;  # 关键修改:添加http2
    listen [::]:443 ssl http2;

    server_name example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    # 推荐的SSL配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...;
    ssl_prefer_server_ciphers on;

    # 其他配置...
}

4. 测试配置并重启 Nginx

sudo nginx -t  # 测试配置
sudo systemctl restart nginx  # 或 sudo service nginx restart

验证 HTTP/2 是否生效

  1. 使用浏览器开发者工具:

    • 在Chrome中,打开开发者工具 → Network → 查看Protocol列
    • 应该显示"h2"表示HTTP/2
  2. 使用命令行工具:

    curl -I --http2 https://example.com
    
  3. 在线检测工具:

    • https://tools.keycdn.com/http2-test
    • https://http2.pro/

性能优化建议

  1. 启用SSL会话复用

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    
  2. 启用OCSP Stapling

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;
    
  3. 调整缓冲区大小

    http2_chunk_size 8k;
    http2_body_preread_size 64k;
    

常见问题解决

问题1:浏览器不支持HTTP/2 - 确保使用现代浏览器(Chrome、Firefox、Edge、Safari等最新版本)

问题2:ALPN不支持 - 升级OpenSSL到1.0.2或更高版本 - 重新编译Nginx

问题3:HTTP/2不生效 - 确认listen指令中有http2参数 - 确认SSL证书配置正确 - 检查防火墙是否允许443端口

通过以上步骤,您应该能够成功升级Nginx以支持HTTP/2.0协议,从而提升网站性能。