HTTP/2 是 HTTP 协议的主要修订版本,能显著提升网页加载速度。以下是升级 Nginx 以支持 HTTP/2 的详细步骤:
nginx -v
nginx -V # 查看编译参数,确认是否已支持HTTP/2
# 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
修改您的 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;
# 其他配置...
}
sudo nginx -t # 测试配置
sudo systemctl restart nginx # 或 sudo service nginx restart
使用浏览器开发者工具:
使用命令行工具:
curl -I --http2 https://example.com
在线检测工具:
启用SSL会话复用:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
启用OCSP Stapling:
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
调整缓冲区大小:
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协议,从而提升网站性能。