スポンサーリンク

HTTP/3 (QUIC) 対応のnginxに移行

network

HTTP/3 対応のnginxに置き換えたメモ書き。

もうそろそろHTTP/3本格的に使い始めても良さそうなので移行してみました。

現時点で必須なオプション入れて、次のような感じで設定しました。

---
server {
    # HTTP/3 QUIC Enable
    listen 443 http3 reuseport;
    
    # HTTP/2 and HTTP1.1
    listen 443 ssl http2;
​
    server_name localhost;  # customize to domain
​
    # you need to mount these files when running this container
    ssl_certificate     /etc/letsencrypt/live/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/key.pem;
​
    # Enable TLS versions (TLSv1.3 is required for QUIC).
    ssl_protocols TLSv1.3;
​
    # 0-RTT QUIC connection resumption
    ssl_early_data on;
​
    # Add Alt-Svc header to negotiate HTTP/3.
    add_header alt-svc 'h3=":443"; ma=86400';
​
    # Sent when QUIC was used
    add_header QUIC-Status $quic;
    
    location / {
        #
        #
        # my config
        #
        #
    }
}
---

対応するnginxを作ろうと思っていたのですが、dockerでちょうどいいのが有りましたので今回はこちらを利用しています。

macbre/nginx-http3

オプション盛り盛り
気軽に入れ替えて試せるdockerはいいですね。

置換するconfigは/etc/nginx/nginx.conf
certは/etc/letsencryptを丸ごとマウントするとお手軽です。

HTTP/3はUDPで通信をするので、dockerで動かすときはポート指定に 443:443/udp を入れる事を忘れずに。

以上で設定は完了なのですが、手元では何故かHTTP/3にならないと結構悩みました。
一部使っていた設定が原因でしたので、うまく行かない場合は書いているオプションを一旦カットして検証が必要になるかもしれません。

443以外のポートでも利用は可能でした。

コメント

タイトルとURLをコピーしました