Nginx 开启 HTTP/3 和 QUIC 配置教程

Nginx 通过开启 HTTP/3 和 QUIC 协议,能够提升网站的访问速度和安全性(大陆内地相反)。本文将介绍如何在 Nginx 中启用这两个协议,并提供相关的配置说明。

一、前提条件

  • Nginx 版本:需要 Nginx 1.19 及以上支持QUIC的版本。

可以参考这篇编译安装 Nginx 教程来完成 Nginx 的安装。

二、配置 Nginx 启用 QUIC 和 HTTP/3

在 Nginx 配置文件中启用 HTTP/3 和 QUIC 需要修改如下内容:

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    # 启用 QUIC 协议,如果有多个站点,其中一个站点加reuseport后,其他的站点无需加reuseport
    listen 443 quic reuseport;
    listen [::]:443 quic reuseport;

    # 启用 HTTP/2 和 HTTP/3
    http2 on;
    http3 on;

    # QUIC 相关配置
    quic_retry on;
    quic_gso on;
    # openssl genpkey -algorithm X25519 -out /etc/nginx/ssl/quic_host.key
    quic_host_key /etc/nginx/ssl/quic_host.key;

    # 设置 Alt-Svc 头,告诉客户端支持 HTTP/3
    add_header Alt-Svc 'h3=":443"; ma=86400';

    server_name yourdomain.com;

    # SSL 配置
    ssl_certificate /etc/nginx/ssl/yourdomain.crt;
    ssl_certificate_key /etc/nginx/ssl/yourdomain.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:EECDH+AES256:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 根据需求配置不同的 location
    location / {
        proxy_pass http://backend_server;
        add_header Alt-Svc 'h3=":443"; ma=86400';  # 重复添加 Alt-Svc 头部
    }
}

1. QUIC 和 HTTP/3 相关配置项

  • listen 443 quic reuseport: 启用 QUIC 协议,并在端口 443 上监听。
  • http3 on: 启用 HTTP/3。
  • quic_retry on: 启用 QUIC 重试机制。
  • quic_gso on: 启用 QUIC 的 GSO(Generic Segmentation Offload)功能。
  • quic_host_key: 指定 QUIC 使用的密钥文件路径。
  • add_header Alt-Svc: 向客户端传递服务器支持的 HTTP/3 信息。

2. SSL 和 HTTP/2 配置

  • ssl_certificatessl_certificate_key: 指定 SSL 证书和私钥。
  • ssl_protocols: 启用 TLSv1.2 和 TLSv1.3。
  • http2 on: 启用 HTTP/2。
  • ssl_ciphers: 配置使用的加密套件。

三、重启 Nginx

配置完成后,重新加载或重启 Nginx 以使配置生效:

# 检查配置是否正确
sudo nginx -t

# 重启 Nginx
sudo systemctl restart nginx

四、测试是否成功启用 HTTP/3 和 QUIC

可以通过以下网址测试网站是否成功启用了 HTTP/3 和 QUIC:

文章作者: 子受
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 薪萤-博客
技术
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝