새로운 웹 서버 '제로서브(zeroserve)'가 공개되어 기존 Nginx(엔진엑스)나 Caddy(캐디) 같은 서버의 대안으로 주목받고 있습니다. 제로서브의 가장 큰 특징은 '제로 컨피그(zero-config)'라는 이름처럼 별도의 설정 파일이 없다는 점입니다. 대신 eBPF(확장 버클리 패킷 필터) 프로그램을 통해 모든 요청 처리 로직을 직접 스크립트할 수 있어, 웹 서버의 동작 방식을 개발자가 원하는 대로 유연하게 제어할 수 있습니다.
제로서브는 웹사이트 전체를 하나의 tarball(타르볼) 파일로 묶어 제공하며, 이 파일 안에 eBPF 스크립트를 포함시킬 수 있습니다. 이 스크립트는 모든 HTTP 요청마다 사용자 공간(userspace)에서 샌드박스 형태로 실행되어 요청 재작성, 인증, 속도 제한, 리버스 프록싱 등 다양한 미들웨어 기능을 수행합니다. 특히, eBPF 스크립트는 JIT(Just-In-Time) 컴파일을 통해 네이티브 코드로 실행되므로 매우 효율적이며, io_uring(아이오_유링)을 활용한 모든 네트워크 및 디스크 I/O 처리로 Nginx보다 뛰어난 성능을 보여줍니다. 또한, TLS 1.3, HTTP/2 등 최신 웹 기술을 기본 지원하며, tarball 교체 후 SIGHUP 시그널만으로 웹사이트와 TLS 인증서를 무중단 핫 리로드(hot reload)할 수 있어 운영 편의성도 높습니다.
제로서브의 핵심 설계 철학은 '설정의 단순화'에 있습니다. 기존 웹 서버들은 선언적 설정 언어와 스크립팅 런타임이 분리되어 복잡한 동작을 구현하기 어려웠지만, 제로서브는 eBPF 프로그램 하나로 모든 요청 경로를 처음부터 끝까지 제어할 수 있게 함으로써 이러한 문제를 해결합니다. 이는 개발자가 웹 서버의 동작을 명확하게 이해하고 관리할 수 있게 하며, 더 빠르고 안전하며 유연한 웹 서비스 구축을 가능하게 합니다. 특히, 단일 tarball 배포 방식은 배포 과정을 단순화하고 보안 취약점 노출 위험을 줄이는 이점도 제공합니다.