LoginSignup
0
0

nginx で バーチャルドメインを同一IPアドレスでhttp/3(QUIC) 運用する方法

Last updated at Posted at 2023-10-10

TDLR

nginx 1.25以降で バーチャルドメインを同一IPアドレスでhttp/3(QUIC)運用する方法
nginx.confでのreuseportは1つのポートに対して1箇所のみ指定しましょう

Install

HTTP/3が使えるようにコンパイルされたnginxが各自用意してください

e.g.

エッセンシャルなところだけ
2つ目以降のlistenには reuseport をつけずに quicだけ記述するのがミソ
あと、ワイルドカード証明書を使う場合は、その証明書を使っている全てのバーチャルドメインで同一の設定にしておかないと、コネクションを使い回そうとするのでエラーが出たりするので注意

nginx.conf

server {
    listen       443 ssl default_server;
    listen       [::]:443 ssl default_server;

    listen 443 quic reuseport;
    listen [::]:443 quic reuseport;
    http2 on;
    http3 on;

    server_name _;

    location / {
        root    /default_root/;
    }

}


server {
    listen  443 ssl;
    listen  [::]:443 ssl;
    listen  443 quic;
    listen  [::]:443 quic;
    http2 on;

    server_name  virtual1.example.org;

    location / {
         add_header Alt-Svc 'h3=":443"; ma=86400' always;
    }
}


server {
    listen  443 ssl;
    listen  [::]:443 ssl;
    listen  443 quic;
    listen  [::]:443 quic;
    http2 on;

    server_name  virtual2.example.org;

    location / {
         add_header Alt-Svc 'h3=":443"; ma=86400' always;
    }
}

Conclusion

  • 全てのlistenにreuseportをつけるとハマる。
  • 設定するのは最初の一つだけ
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0