TCPからUDPベースでのhttpであるQuicをNginxで試してみる。
Nginxbのメインラインとしてはバイナリをそのまま使えるってわけでなく外部で足されているパッチを当てビルドオプションを指定して自前ビルドが必要。
手順はこの辺を参考
nginx.confの例
events { worker_connections 1024; } http { server { # Enable QUIC and HTTP/3. listen 443 quic reuseport; # Enable HTTP/2 (optional). listen 443 ssl http2; ssl_certificate cert.crt; ssl_certificate_key cert.key; # Enable all TLS versions (TLSv1.3 is required for QUIC). ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Add Alt-Svc header to negotiate HTTP/3. add_header alt-svc 'h3-23=":443"; ma=86400'; } }
quicを喋れるクライアントが必要になるのでこの辺はcurlで代用
あとはtcpdumpなりwiresharkなりで見ればQuicが使われてることが確認できる。
パフォーマンス関連はいつかやりたいなぁ。
パッチはこんな感じらしいのだが実装言語はrustでやっている。