Nginx 1.25 实现 HTTP/3 指南:编译参数与配置详解

HTTP/3 作为新一代的 HTTP 协议,以其更快的速度和更高的安全性备受关注。本文将指导您如何在 Nginx 1.25 上启用 HTTP/3,并详细解释所需的编译参数和配置。

编译参数

在编译 Nginx 时,需要添加以下参数以支持 HTTP/3:

  • --with-http_v3_module:启用 HTTP/3 模块。
  • --with-openssl=<path-to-openssl-1.1.1>:指定 OpenSSL 1.1.1 或更高版本的路径,因为 HTTP/3 需要支持 TLS 1.3。
  • --with-quiche=<path-to-quiche>:指定 quiche 库的路径,它是 HTTP/3 的实现库。

配置

完成编译后,您需要在 Nginx 配置文件中添加以下内容:

server {
    listen 80;
    listen [::]:80;
    
    listen 443 ssl;
    listen [::]:443 ssl;
    
    # 启用 HTTP/3
    listen 443 quic reuseport;
    listen [::]:443 quic reuseport;
    
    http2 on;
    http3 on;
    
    # ... 其他配置 ...
}

配置说明:

  • listen 443 quic reuseport;listen [::]:443 quic reuseport;:这两行启用 HTTP/3 监听,分别用于 IPv4 和 IPv6。
  • reuseport:该参数允许多个 worker 进程监听同一个端口,提高性能。注意, listen 指令只能使用一次 reuseport
  • http2 on;:启用 HTTP/2 支持。
  • http3 on;:启用 HTTP/3 支持。

其他注意事项

  • 确保您的服务器拥有有效的 TLS 证书,因为 HTTP/3 需要加密连接。
  • 客户端也需要支持 HTTP/3 才能使用此功能。目前,Chrome、Firefox 和 Edge 等主流浏览器都已支持 HTTP/3。

总结

通过添加必要的编译参数和配置,您可以在 Nginx 1.25 上轻松启用 HTTP/3,享受更快速、更安全的网络体验。请记住,reuseport 参数只能在每个 listen 指令中使用一次,以确保配置正确。