様子見。
in-deep.blue はTLSオフローダとしてHAProxyを利用しておりますが、Debian Backports上にある2.6系から自前ビルドの2.8系に更新してみました。
2.8になって何が嬉しいかというとQUICの本対応です。(他にも色々ある)
実は2.6系から一応使えはしたのですが、Backportsのものは非対応です。どうせビルドするなら新しいものを・・・というやつです。
一応動いているように見えていますが、どこかで不具合が起きたら無効化します。
Mastodonも(見かけ上)QUICで接続されます。なおBackendは・・・(手抜き。)
追記 ビルドめも
cd wk/openssl
git pull
git checkout opensslばーじょん
./Configure --libdir=lib --prefix=/opt/quictls linux-x86_64
make -j2
make -j16 install
cd ../haproxy-2.8
git pull
make TARGET=linux-glibc \
USE_LUA=1 \
USE_PCRE=1 \
USE_ZLIB=1 \
USE_SYSTEMD=1 \
USE_PROMEX=1 \
USE_QUIC=1 \
USE_OPENSSL=1 \
SSL_INC=/opt/quictls/include \
SSL_LIB=/opt/quictls/lib \
LDFLAGS="-Wl,-rpath,/opt/quictls/lib"
./haproxy -vv
make install-bin
cd admin/systemd
make haproxy.service
cp ./haproxy.service /etc/systemd/system/
mkdir -p /etc/haproxy
mkdir -p /run/haproxy
2023/12/07 HAProxyの設定例も追記。
frontend default-tls-fr
http-request set-header X-Forwarded-Proto https
http-request set-header X-Real-IP %[src]
http-after-response add-header alt-svc 'h3=":443"; ma=31536000'
option forwardfor
default_backend default-bk
bind *:443 ssl crt /etc/haproxy/in-deep.blue.pem alpn h2,http/1.1
bind [::]:443 ssl crt /etc/haproxy/in-deep.blue.pem alpn h2,http/1.1
bind quic4@:443 ssl crt /etc/haproxy/in-deep.blue.pem alpn h3
bind quic6@:443 ssl crt /etc/haproxy/in-deep.blue.pem alpn h3
http-request set-var(txn.host) req.hdr(host)
acl isjp src -f /opt/geoip/JP.txt
acl iswpadminpath path -i -m beg /wp-admin
acl iswpadminpath path -i -m beg /wp-login.php
http-request reject if !isjp iswpadminpath
use_backend mastodon-sv1-https-bk if { req.hdr(host) sv1.in-deep.blue }
use_backend ipinfo-bk if { req.hdr(host) ipinfo.in-deep.blue || req.hdr(host) ipinfo-v4.in-deep.blue }
use_backend httpbin-bk if { req.hdr(host) httpbin.in-deep.blue }
use_backend speed-bk if { req.hdr(host) speed.in-deep.blue }