원문 보기: https://dawoum.duckdns.org/wiki/HAProxy/Using_HTTP/3_over_QUIC_on_HAProxy
HAProxy에서 보다 빠른 응답을 기대하기 위해, HTTP/3 프로토콜을 지원하도록 설정할 필요가 있습니다.
한편, 데비안에서 제공하는 OpenSSL에서 QUIC에 대한 패치가 포함되어 있지 않기 때문에, 해당 API를 지원하기 위해 OpenSSL에서 포크된 프로젝트, QUICTLS를 먼저 설치해야 합니다.
그 후에, HAProxy도 마찬가지로 해당 API로 컴파일을 다시 해야 합니다.
Install QUICTLS
최신 개발 버전을 받아서 설치해 줍니다.
- git clone https://github.com/quictls/openssl
- cd openssl
- sudo mkdir -p /opt/quictls/ssl
- ./Configure --libdir=lib --prefix=/opt/quictls
- make
- sudo make install
설치된 라이브러리를 읽을 수 있도록 처리해야 합니다:
- sudo gvim /etc/ld.so.conf.d/quictls.conf
첫 줄에 /opt/quictls/lib를 추가하고, 다음을 실행합니다:
- sudo ldconfig
Install HAProxy
이제, 데비안 소스를 가져와서 옵션을 추가한 후에 패키지를 묶을 수 있습니다:
- apt source haproxy
- cd haproxy-2.7.2
- gvim debian/rules
이 파일에 MAKEARGS에 다음을 추가합니다:
USE_QUIC=1 \
SSL_INC=/opt/quictls/include \
SSL_LIB=/opt/quictls/lib \
LDFLAGS="-Wl,-rpath,/opt/quictls/lib" \
그런-다음, 다음을 적당한 위치에 추가해 줍니다:
override_dh_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
그런-다음 변경 사항(quictls support)을 기록하고 컴파일합니다:
- dch -v 2.7.2-2 -D bookworm -u medium
- time dpkg-buildpackage -i -us -uc -b
상위 디렉토리로 옮겨서 해당 파일을 설치합니다:
- cd ..
- sudo dpkg -i haproxy_2.7.2-2_amd64.deb
Configuration HAProxy
이제 설정을 추가하고, 서비스를 다시 시작해야 합니다:
- sudo gvim /etc/haproxy/haproxy.cfg
bind quic4@:443 ssl crt /etc/ssl/private/example.pem alpn h3
http-response set-header alt-svc "h3=\":443\";ma=86400;"
첫 줄은 기존의 443 bind 아래쪽에 기록하고, 두 번째 줄은 그 아래 적당한 위치에 추가해 줍니다:
- sudo systemctl restart haproxy
- sudo systemctl status haproxy
서비스가 실행되고 있는지 확인을 합니다.
Add ufw rules
방화벽을 열어 주어야 합니다.
- sudo ufw allow 443/udp
Check HTTP/3
파이어폭스 브라우저에서 확인하기 위해, 해당 사이트로 접속을 합니다.
그런-다음 주소창에서 about:networking로 접근하셔서 해당 사이트의 프로토콜을 확인할 수 있습니다. 예를 들어, cdnjs.cloudflare.com는 HTTP/3로 표시됩니다.
다른 방법은 여기로 접속하셔서 해당 사이트 주소를 입력해 보십시오,
댓글
댓글 쓰기