找回密码
 新建账号

nginx quic http3 curl: (55) ngtcp2_conn_writev_stream returned error: ERR_DRAINING

[复制链接]
php 发表于 2024/5/12 03:14 | 显示全部楼层 |阅读模式
nginx 同时配置了 quic <http/3> 和 ssl 时,HTTP/3 并没有生效,浏览器不能使用 HTTP/3 连接服务器,自动回落到 HTTP/2,使用 curl --http3 强制通过 HTTP/3 连接,得到以下错误。
  1. curl: (55) ngtcp2_conn_writev_stream returned error: ERR_DRAINING
复制代码
  1. server {
  2.         listen 443 ssl;
  3.         listen 443 quic;
  4.         listen [::]:443 ssl;
  5.         listen [::]:443 quic;
  6.         http3 on;
  7.         http2 on;
  8.         ......
  9. }
复制代码
给 listen 指令添加 reuseport 可以解决这个问题。
  1. server {
  2.         listen 443 ssl reuseport;
  3.         listen 443 quic reuseport;
  4.         listen [::]:443 ssl reuseport;
  5.         listen [::]:443 quic reuseport;
  6.         http3 on;
  7.         http2 on;
  8.         ......
  9. }
复制代码
需要注意的是,在多个 server 配置块中使用 reuseport 可能因为重复绑定相同的地址和端口号而导致 nginx 无法启动。
  1. nginx: [emerg] duplicate listen options for 0.0.0.0:443 in /server/wuxiancheng.cn/nginx/conf/nginx.conf:78
复制代码
  1. nginx: [emerg] duplicate listen options for [::]:443 in /server/wuxiancheng.cn/nginx/conf/nginx.conf:80
复制代码
相关链接 nginx:listen quic

手机版|轻松E站

GMT+8, 2024/12/21 21:28

快速回复 返回顶部 返回列表