KUSANAGIでHTTP/3 QUICを試す
KUSANAGIはHTTP/3に対応したNginxとQuicに対応させたOpenSSLをバンドルしているということで試してみたときの覚書。
参考: KUSANAGI 9 が対応した HTTP/3 とは - KUSANAGI Tech Column
環境: ConoHa VPS メモリ8G/CPU6コア、KUSANAGI Version 9.4.12-1.el9
Nginxを1.25に切り替え
公式ページを参考にしながらkusanagiコマンドを実行する。
参考: KUSANAGI 9 バージョンアップ情報 9.3.0-1 - 超高速CMS実行環境 KUSANAGI
# kusanagi nginx --use nginx125
# kusanagi nginx --update-conf
確認
# nginx -V
# cd /etc/opt/kusanagi/nginx/
# less conf.d/ssl_listen.inc
firewalldで443/UDPが登録されている確認。
# systemctl status firewalld
# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: eth0sources:services: cockpit dhcpv6-client http https sshports: 443/udp 60000/tcp
443/udpが登録されていた。
KUSANAGIが登録してくれたんだと思う。
UDPで待ち受けしているポート一覧表示(ssコマンドにuオプションで実行)。
# ss -anu
ちなみにTCPでの待ち受けポートはtオプションで実行する。
# ss -ant
クライアントから443/UDPの疎通確認
ConoHaのコントロールパネルでセキュリティグループを変更してないから、まだ443/udpで通信できないはず。
ChromeのDevToolsのNetworkタブでProtocolを確認する。
cURLでも確認してみた。
PS:> curl --head -v --http3 https://test.hoge.co.jp/
* using HTTP/2* [HTTP/2] [1] OPENED stream for https://test.hoge.co.jp/* [HTTP/2] [1] [:method: HEAD]* [HTTP/2] [1] [:scheme: https]* [HTTP/2] [1] [:authority: test.hoge.co.jp]* [HTTP/2] [1] [:path: /]* [HTTP/2] [1] [user-agent: curl/8.6.0]* [HTTP/2] [1] [accept: */*]
http3が使えるgoogle.comで確認してみた。
PS:> curl --head -v --http3 https://www.google.com/
* using HTTP/3* [HTTP/3] [0] OPENED stream for https://www.google.com/* [HTTP/3] [0] [:method: HEAD]* [HTTP/3] [0] [:scheme: https]* [HTTP/3] [0] [:authority: www.google.com]* [HTTP/3] [0] [:path: /]* [HTTP/3] [0] [user-agent: curl/8.6.0]* [HTTP/3] [0] [accept: */*]
今度はConoHaのコントロールパネルで443/UDPをIN方向で許可するセキュリティグループを作成して仮想マシンに追加する。
ChromeのDevToolsのNetworkタブでProtocolを確認する。
h3で通信できた。
cURLでも確認する。
PS:> curl --head -v --http3 https://test.hoge.co.jp/
* using HTTP/3* [HTTP/3] [0] OPENED stream for https://test.hoge.co.jp/* [HTTP/3] [0] [:method: HEAD]* [HTTP/3] [0] [:scheme: https]* [HTTP/3] [0] [:authority: test.hoge.co.jp]* [HTTP/3] [0] [:path: /]* [HTTP/3] [0] [user-agent: curl/8.6.0]* [HTTP/3] [0] [accept: */*]
http3での通信を確認。
ただ本番環境で利用するかは迷うところ。