LiteSpeedに、Webサーバを変更しました。
LiteSpeedは、HTTP/3に対応しているようです。
HTTP/3(略称: H3)は、HTTP/2に続くハイパーテキスト転送プロトコルの3つ目のメジャーバージョンである。バイナリデータのやり取りに使われる。HTTP/3 は RFC ドラフト「Hypertext Transfer Protocol(HTTP) over QUIC」をベースとしている[1]。
https://ja.wikipedia.org/wiki/HTTP/3
ちょっとプロトコルの部分詳しくないのですが、HTTP/1からHTTP/2にした場合、めっちゃ早くなったので、さらに早くなるのでは?といった印象です。
tensorflow.jsを使って、ブラウザ側で画像を判定をするものを作成しようとしたのですが、自分のサイトではものすごくモデルのロードに時間がかかるのに、よそのサイトでは早かったのでHTTP/3対応に行き着きました。
LiteSpeedは対応しているかどうか調べてみると既に対応しているようで、ファイアーウォールをあけてあげないと有効にならないようです。
現状確認
上記ページのコマンド通り確認していきます。
# netstat -lupn | grep 443
udp 0 0 0.0.0.0:443 0.0.0.0:* 1728/openlitespeed
udp 0 0 0.0.0.0:443 0.0.0.0:* 1728/openlitespeed
確かに、サーバ側は、待ち構えていそう。
もしかしたら、開放済みかもしれないので、以下コマンドで確認をしていきます。
STEP1
UDP 443 ポートが開いている他のサーバーから、Web サイトがホストされているサーバーに 1 バイトの UDP パケットを送信します。
ローカルのPCからやってみます。以下の通り大丈夫そうです。
# nc -z -v -u 49.212.86.61 443
Connection to 49.212.86.61 port 443 [udp/https] succeeded!
STEP2
ウェブサイトがホストされているサーバーでUDPパケットが正常に到着しているかを確認します。
# tcpdump -i eth0 -A -s0 port 443 and udp
-bash: tcpdump: コマンドが見つかりません
tcpdumpコマンドが入っていませんでした。インストールします。
# yum install tcpdump
再度コマンドを実行して、受信しているか確認します。
# tcpdump -i eth0 -A -s0 port 443 and udp
ブラウザからアクセスしてみて、通信が発生するか確認します => 何も起こりません。
上記を、TCP/443に変えて、ブラウザでアクセスすると、通信内容のダンプが流れます。
tcpdump -i eth0 -A -s0 port 443 and tcp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
23:52:25.467908 IP XXXXXXXXXXXXXXXx > YYYYYYYYYY.https: Flags [P.], seq 4053636457:4053636715, ack 3196568643, win 2048, options [nop,nop,TS val 235613387 ecr 4175846586], length 258
E..6..@.6.~.~c.31.V=.u.....i...C....e......
..,...\......M.....~.wx\.Q.@D..g.O7.8)R.}07...tW.e$9D...GF.z>...l..+...a....?!..R*.7../.. .... .m....N A.BW>...........}\Fy ..*o........W|.!..WJ..2a..
以下のサイトでも、同様のチェックができるようです。
設定変更
この時点で、どちらで確認しても、HTTP/3通信できていないようなので、ポートを開けます。
firewall-cmd --zone=public --add-port=443/udp --permanent
firewall-cmd --reload
変更後確認
再度、チェックサイトで確認してみます。
以下のように、どちらもサポート状態になりました。
実際に、サイトにアクセスしてデータ通信のプロトコルを確認するとhttp/3になっていません。
以下のchrome拡張を入れて、googleのサイトにアクセスすると以下のように表示されます。
自分のサイトでは、以下の通りhttp/2の通信になっています。
サーバ再起動
ここで管理画面から、LiteSpeedを再起動します。
再度、アクセスしてみると、以下のようにhttp/3の通信表示が出るようになりました。
h3-29ではなく、h3-Q050になっています。
この違いは、h3-Q050がGoogleが作成したもので、h3-29が、IETF QUICといって今後標準化されるもののようです。
チェックサイトの一覧の中に、h3-29が含まれていないのが確認できます。
「Google QUIC Q050」をサポートするサーバーが「IETF QUIC」へアップデートする時間的猶予を確保するため、当面の間「Chrome」は「IETF QUIC h3-29」と「Google QUIC Q050」の両方を積極的にサポートしていくとのこと
https://forest.watch.impress.co.jp/docs/news/1281840.html
うまく行かない場合
以下のページの対応を参考にしてみてください。