地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

Quic対応Nginxを試す

TCPからUDPベースでのhttpであるQuicをNginxで試してみる。

Nginxbのメインラインとしてはバイナリをそのまま使えるってわけでなく外部で足されているパッチを当てビルドオプションを指定して自前ビルドが必要。

手順はこの辺を参考

blog.cloudflare.com

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で代用

asnokaze.hatenablog.com

あとはtcpdumpなりwiresharkなりで見ればQuicが使われてることが確認できる。

パフォーマンス関連はいつかやりたいなぁ。


パッチはこんな感じらしいのだが実装言語はrustでやっている。

github.com