插件窝 干货文章 Nginx开启HTTP/2配置,加速网站访问速度

Nginx开启HTTP/2配置,加速网站访问速度

Nginx 配置 HTTP application 897    来源:    2025-04-17

Nginx开启HTTP/2配置指南

HTTP/2是HTTP协议的主要修订版本,可以显著提高网站加载速度。以下是配置Nginx支持HTTP/2的详细步骤:

前提条件

  1. Nginx版本1.9.5或更高
  2. 已配置SSL/TLS(HTTP/2需要HTTPS)
  3. OpenSSL 1.0.2或更高版本

配置步骤

1. 检查Nginx版本和OpenSSL支持

nginx -v
openssl version

2. 修改Nginx配置文件

在您的站点配置文件中(通常在/etc/nginx/sites-available/目录下),找到或添加listen指令:

server {
    listen 443 ssl http2;  # 添加http2参数
    listen [::]:443 ssl http2;

    server_name yourdomain.com;

    ssl_certificate /path/to/your/certificate.crt;
    ssl_certificate_key /path/to/your/private.key;

    # 其他配置...
}

3. 优化SSL配置(推荐)

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

4. 启用HTTP/2服务器推送(可选)

location = /index.html {
    http2_push /style.css;
    http2_push /script.js;
}

5. 测试并重启Nginx

sudo nginx -t  # 测试配置
sudo systemctl restart nginx  # 重启Nginx

验证HTTP/2是否生效

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

    • 在Chrome中打开开发者工具(F12)
    • 转到"Network"选项卡
    • 刷新页面
    • 点击任意请求,在"Headers"部分查看"Protocol"字段应为"h2"
  2. 使用命令行工具:

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

常见问题解决

1. HTTP/2未生效

  • 确认Nginx版本支持HTTP/2
  • 确保配置中没有语法错误
  • 检查防火墙是否允许443端口

2. 浏览器不支持HTTP/2

  • 确保使用现代浏览器(Chrome、Firefox、Safari、Edge等较新版本)

3. SSL证书问题

  • 确保证书有效且正确配置
  • 可以使用Let's Encrypt免费证书

性能优化建议

  1. 启用Gzip压缩:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
  1. 启用缓存头:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
}
  1. 考虑启用Brotli压缩(需要额外模块):
brotli on;
brotli_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

通过以上配置,您的网站将能够利用HTTP/2的多路复用、头部压缩和服务器推送等特性,显著提升加载速度。