새로운 웹 서버 'Zeroserve'가 등장하여 Nginx(엔진엑스)와 Caddy(캐디)의 대안을 제시하고 있습니다. 이 서버의 핵심은 eBPF(확장된 버클리 패킷 필터) 프로그램을 활용해 설정 파일 없이 모든 요청 처리 로직을 스크립트로 구현한다는 점입니다. 웹사이트 전체를 단일 tarball(타르볼) 파일로 묶어 배포하고, 이 안에 포함된 eBPF 스크립트가 라우팅, 헤더, 인증, 속도 제한, 프록시 등의 역할을 사용자 공간 샌드박스 미들웨어로 수행합니다. 이는 기존 웹 서버의 선언형 설정과 별도 스크립팅 계층을 하나로 통합하는 새로운 시도입니다.
Zeroserve는 웹사이트 tarball을 HTTP/2와 TLS 1.3으로 제공하며, tarball은 디스크에 풀리지 않고 로드 시 경로-바이트 범위 맵을 생성하여 직접 읽기 때문에 배포가 원자적으로 이루어집니다. SIGHUP 신호를 통해 연결 손실 없이 사이트, 스크립트, TLS 정보를 핫 리로드할 수 있습니다. 성능 벤치마크 결과, 단일 코어에서 소형 정적 파일(174B)의 경우 Nginx보다 약 17% 빠른 36,681 req/s를 기록했으며, 10ms 간격으로 조정된 eBPF 스크립트를 사용한 동적 JSON 응답(46,945 req/s)에서도 Nginx LuaJIT보다 높은 처리량을 보였습니다. 다만, 100KB 이상의 대형 프록시 응답에서는 Nginx가 여전히 우위를 점했습니다. eBPF 스크립트는 네이티브 코드로 JIT(Just-In-Time) 컴파일되며, 사용자 공간에서 샌드박싱되어 요청마다 실행될 만큼 낮은 비용을 목표로 합니다. OIDC(OpenID Connect) 로그인, AWS SigV4 헬퍼 등 다양한 기능도 스크립트 형태로 제공됩니다.
Zeroserve의 등장은 웹 서버 구성 및 배포 방식에 대한 새로운 가능성을 열어줍니다. 설정 파일을 없애고 모든 로직을 코드로 관리하는 '프로그램형 설정'은 개발자에게 더 큰 유연성과 제어권을 제공하며, CI/CD(지속적 통합/지속적 배포) 파이프라인과의 통합을 용이하게 할 수 있습니다. 단일 tarball 배포 방식은 배포 과정을 단순화하고, 잘못된 설정으로 인한 보안 취약점 노출 가능성을 줄일 수 있습니다. 특히 소규모 정적 웹사이트나 API 게이트웨이와 같이 가볍고 빠른 처리가 중요한 서비스에 효과적인 대안이 될 수 있습니다. 다만, 대규모 트래픽을 처리하는 복잡한 리버스 프록시 환경에서는 기존 Nginx와 같은 솔루션의 강점이 여전히 유효할 것으로 보입니다.