프로젝트 소개

Sōzu는 Clever Cloud가 개발한 Rust로 작성된 경량의 빠른 리버스 프록시 서버입니다. 그 특징은 "상시 가동(always-up)"이라는 점입니다. 구성 변경은 리로드 없이 안전한 유닉스 소켓을 통해 런타임에 적용되며, 프록시는 요청을 계속 처리하면서 스스로 업그레이드할 수 있습니다. README에 설명된 주요 기능: - 핫 구성: 유닉스 소켓을 통한 런타임 변경, 재시작 불필요. - 무중단 업그레이드: 마스터/워커 감독자가 트래픽이 계속되는 동안 워커를 교체합니다. - TLS 종료: TLS 엔드포인트 역할을 하여 백엔드는 평문을 유지할 수 있습니다. 컴파일 시 암호화 백엔드 선택 — ring(기본), AWS-LC(포스트 양자 및 FIPS 140-3 옵션 포함), OpenSSL. - 네트워크 보호: 백엔드는 프록시 뒤에 보호되며, 워커는 샌드박스화되고 Rust는 메모리 안전성을 제공합니다. - 성능 지향: Kawa 라이브러리를 통한 제로 카피 HTTP 처리와 Rustls를 통한 저오버헤드 TLS. - 라이브 운영자 TUI: `sozu top`(`tui` 기능으로 빌드)은 명령 소켓을 통해 btop/htop 스타일 대시보드를 제공하며, 스파크라인, 정렬 가능한 클러스터 및 백엔드 테이블, HTTP/2 플러드 완화 카운터, 색상으로 구분된 이벤트 테일을 포함합니다. 설치 옵션으로는 태그가 지정된 GitHub 릴리스에 첨부된 사전 빌드된 Linux 바이너리(x86_64 gnu/musl 및 aarch64 gnu 타겟, 다양한 암호화 제공자 변형 포함), Docker Hub의 `clevercloud/sozu` Docker 이미지, 소스에서 빌드가 있습니다. 릴리스에는 SHA256SUMS, sigstore 키리스 서명, SLSA 빌드 출처 증명이 포함됩니다. README는 Docker 이미지가 서명된 tarball과 다르게 빌드되며 바이트 단위로 동일하지 않다고 명시합니다. 빠른 시작에는 `protoc`와 고정된 Rust 툴체인이 필요하며, 그다음 `cargo build -p sozu --release --locked`와 `target/release/sozu start -c bin/config.toml`을 실행합니다. Cargo 워크스페이스는 다섯 개의 크레이트를 포함합니다: `lib`(단일 스레드 mio 이벤트 루프, HTTP/1.1 및 HTTP/2 멀티플렉싱, TCP/UDP/TLS 프로토콜, 라우팅, IP별 속도 제한, 메트릭, 버퍼 풀을 갖춘 리버스 프록시 라이브러리), `bin`(감독자 바이너리, 명령 소켓, 핫 재구성, 선택적 TUI), `command`(protobuf IPC 스키마, 구성 파서, 복제된 상태, FD 전달 헬퍼), `e2e`(실제 워커와 모의 클라이언트/백엔드를 사용한 통합 하네스), `sim`(sans-io UDP 코어의 결정론적 시뮬레이션). 별도의 `fuzz` 크레이트는 프레임 파싱과 HPACK 디코딩을 다룹니다. HTTP/2 지원에는 CVE-2023-44487(Rapid Reset), CVE-2024-27316(CONTINUATION flood), CVE-2025-8671(MadeYouReset)에 대한 플러드 완화와 PING/SETTINGS/우선순위 플러드 완화가 포함됩니다. 라이선스: Sōzu 자체는 AGPL-3.0-or-later입니다. 이를 통과하는 트래픽은 커버 작업으로 간주되지 않지만, Sōzu의 코드나 알고리즘을 기반으로 구축된 비즈니스(예: 로드 밸런서 제품)는 기여를 하거나 Clever Cloud와 상업적 계약을 체결해야 합니다. `sozu-command-lib` 크레이트는 LGPL-3.0입니다.