HAProxyのQUICを有効化してみた (ビルド手順備忘録)

様子見。

 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 }

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください