HTTP/2是HTTP协议的主要修订版本,能显著提高网站性能。以下是在Nginx中配置HTTP/2的详细步骤:
nginx -v
确保版本符合要求。
编辑站点配置文件(通常在/etc/nginx/sites-available/your_site
):
server {
listen 443 ssl http2; # 添加http2参数
listen [::]:443 ssl http2;
server_name yourdomain.com;
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/private.key;
# 其他配置...
}
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
nginx -t # 测试配置
systemctl restart nginx # 重启服务
使用浏览器开发者工具:
X-Firefox-Spdy
使用命令行工具:
curl -I --http2 https://yourdomain.com
在线检测工具:
启用服务器推送(需要Nginx 1.13.9+):
http2_push /style.css;
http2_push /script.js;
调整缓冲区大小:
http2_recv_buffer_size 128k;
http2_chunk_size 8k;
限制并发流(可选):
http2_max_concurrent_streams 128;
启用Gzip压缩:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
HTTP/2不生效:
ssl
和http2
参数浏览器不支持:
性能提升不明显:
通过以上配置,您的网站将能够利用HTTP/2的多路复用、头部压缩和服务器推送等特性,显著提升加载速度和用户体验。