리버스프록시로 사용하능한 오픈소스 웹서버 Caddy
안녕하세요. 달소입니다.
오늘 소개해드릴 오픈소스프로젝트는 많은분들이 아실만한 "Caddy" 입니다! (이전에도 소개해드린적이있습니다 ㅎ)
리버스프록시에 대해서는 아래글을 읽고오시면 좋습니다~
대표적인 Reverse Proxy라면 개발이 더디지만 접근성이 가장 좋은 Nginx Proxy Manager
docker를 좀더 활용하실줄알고 난이도가 조금있지만 역시 인기있는 Trafik
그리고 적당한 난이도를 가지고있지만 활발하게 개발되고있는 Caddy 정도가있습니다.
nginx,apache등은 논외로 ㅎ...
뭐 아무튼 역할은 다들 대동소이하지만 Caddy의 경우 경량형으로 만들어졌고 깃허브에서 48000개의 스타를 가지고있는 유명한 프로젝트입니다.
꼭 별의개수가 프로젝트의 고점을 판단해주지는않지만 커밋개수와 기여자가많다면 활발하게 개발되고있고 버그나 이슈가 발생했을때 빠르게 개선되기때문에 개인적으로는 중요하다고 판단하고있습니다.
Caddy란?
Caddy에 대한 설명은 아래와같습니다.
Caddy Server는 Go 언어로 작성된 오픈 소스 웹 서버입니다. Caddy는 간단하고 사용하기 쉬운 구성을 제공하며, HTTPS를 기본으로 지원하고 Let's Encrypt와 같은 인증서 발급 및 갱신을 자동으로 처리합니다.
Caddy는 다양한 기능을 제공합니다. 몇 가지 중요한 기능은 다음과 같습니다:
1. 자동 HTTPS: Caddy는 기본적으로 HTTPS를 사용하며, Let's Encrypt와 같은 인증 기관에서 인증서를 자동으로 발급하고 갱신합니다. 이를 통해 웹 사이트의 보안을 강화할 수 있습니다.
2. 가상 호스팅: Caddy는 가상 호스팅을 지원하여 여러 도메인을 단일 서버에서 호스팅할 수 있습니다. 각 도메인에 대해 별도의 설정을 제공하여 사용자 정의 동작을 구성할 수 있습니다.
3. 리버스 프록시: Caddy는 리버스 프록시를 사용하여 다른 서버로의 요청을 전달할 수 있습니다. 이를 통해 로드 밸런싱, 캐싱, 보안 등 다양한 기능을 구현할 수 있습니다.
4. 플러그인: Caddy는 플러그인 아키텍처를 제공하여 사용자가 원하는 기능을 추가할 수 있습니다. 다양한 플러그인이 이미 개발되어 있으며, 사용자 정의 플러그인을 작성할 수도 있습니다.
Caddy는 간단한 구성 파일을 사용하여 서버를 설정합니다. 이를 통해 사용자는 웹 사이트의 동작을 쉽게 구성할 수 있습니다. 또한 Caddy는 다양한 플랫폼에서 실행할 수 있으며, 가벼운 리소스 요구 사항을 가지고 있어 효율적으로 동작합니다.
Caddy Server는 사용하기 쉽고 강력한 웹 서버로 인기가 있으며, 많은 개발자와 운영자에게 권장되는 선택지입니다.
특징
- Caddyfile 을 통한 손쉬운 구성
- 기본 JSON 구성을 통한 강력한 구성
- JSON API를 사용한 동적 구성
- JSON이 마음에 들지 않으면 어댑터 구성
- 기본적으로 자동 HTTPS
- 공개 이름을 위한 ZeroSSL 및 Let's Encrypt
- 내부 이름 및 IP를 위한 완전 관리형 로컬 CA
- 클러스터의 다른 Caddy 인스턴스와 조정할 수 있습니다.
- 다중 발급자 대체
- TLS/OCSP/인증서 관련 문제로 인해 다른 서버가 다운되더라도 유지
- 수조 건의 요청을 처리하고 수백만 개의 TLS 인증서를 관리한 후 프로덕션 준비 완료
- 프로덕션에서 입증된 대로 수십만 개의 사이트로 확장
- 기본적으로 HTTP/1.1, HTTP/2 및 HTTP/3 모두 지원됨
- 확장성이 뛰어난 모듈식 아키텍처를 통해 Caddy는 팽창 없이 무엇이든 할 수 있습니다.
- 외부 종속성 (libc도 아님) 없이 어디에서나 실행됩니다.
- 다른 서버보다 메모리 안전성이 더 높은 언어인 Go로 작성
- 실제로 사용하는 재미
- 훨씬 더 많은 것을 발견 할 수 있습니다.
홈페이지 / 깃허브
문서
예전 구축글
cmt alert