caddyserver/caddy
HTTPS 기본값인 확장형 웹 서버 Caddy, Go로 작성
원제 caddyserver/caddy
스타 76,497당일 +226Go
Key Point
Go 생태계의 표준 웹 서버로 자리 잡은 Caddy가 자동 HTTPS와 모듈식 설계로 어떻게 프로덕션 규모의 배포를 지원하는지 이해해야 한다.
핵심 요약
- Caddy는 HTTP/1.1, HTTP/2, HTTP/3를 모두 지원하는 멀티플랫폼 웹 서버로, 기본적으로 TLS를 활성화하고 자동 HTTPS를 제공한다.
- ZeroSSL과 Let's Encrypt를 공개 도메인에 사용하며, 내부 이름과 IP에 대해 완전히 관리되는 로컬 CA를 제공한다.
- 클러스터 내 다른 Caddy 인스턴스와 조율 가능하고, 다중 발급자 폴백 및 ECH(Encrypted ClientHello) 지원을 포함한다.
- TLS/OCSP/인증서 문제로 다른 서버가 다운되는 상황에서도 운영을 지속할 수 있도록 설계되었다.
- Caddyfile, JSON, YAML, TOML, NGINX 설정 등 다양한 형식으로 구성 가능하며, JSON API를 통해 동적 설정 변경을 지원한다.
- Config adapter를 통해 JSON 형식 외 다른 설정 언어를 사용할 수 있고, 이미 프로덕션에서 수조 개의 HTTPS 요청과 수백만 개의 TLS 인증서를 관리한다.
- 모듈식 아키텍처로 높은 확장성을 제공하며, Go로 작성되어 외부 의존성 없이 메모리 안전성이 높다.
- Go 1.26.0 이상에서 빌드 가능하며, xcaddy 빌드 도구를 사용하여 커스텀 플러그인을 포함한 바이너리를 생성할 수 있다.
- GitHub 릴리스에서 바이너리를 다운로드하거나 소스에서 빌드할 수 있으며, 저작권은 Stack Holdings GmbH가 보유한다.
저장소 보기 ↗github.com