• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
가이드

역방향 프록시를 위한 Caddy Docker로 구축하기

달소 달소 1841

4

24

 

안녕하세요. 달소입니다.

 

앞선 블랙앤해적 님께서 가이드를 너무 잘써주셔서 NPM -> Caddy 이전작업을 준비중인 달소입니다.

 

NPM을 구성해서 사용하고있었지만 속도 + WAF라는 여러가지 기능을 지원해줘 서버포럼의 속도와 보안을 위해서...(그저 욕심..) 구축해보겠습니다 ㅎ

 

Caddy란?

Caddy는 Go 언어로 작성된 오픈소스 웹 서버 및 리버스 프록시 소프트웨어입니다. Caddy는 다양한 운영 체제에서 작동하며, 간단하고 직관적인 구성 파일을 사용하여 빠르고 쉽게 설정할 수 있습니다. Caddy는 HTTPS를 기본적으로 지원하며, Let's Encrypt와 같은 인증 기관과 통합되어 SSL/TLS 인증서를 자동으로 발급하고 갱신할 수 있습니다.

Caddy의 주요 특징은 다음과 같습니다.

  • 자동 HTTPS: Caddy는 기본적으로 HTTPS를 사용하며, Let's Encrypt와 같은 인증 기관과 통합되어 자동으로 SSL/TLS 인증서를 발급하고 갱신합니다.

  • 간단한 구성: Caddy는 간단하고 직관적인 구성 파일을 사용하여 쉽게 설정할 수 있습니다.

  • 빠른 속도: Caddy는 Go 언어로 작성되어 있으며, 높은 처리 성능을 가지고 있습니다.

  • 모듈화: Caddy는 다양한 모듈을 제공하여 필요에 따라 기능을 확장할 수 있습니다.

  • 안전한 운영: Caddy는 보안에 중점을 두고 개발되어, 기본적으로 HTTPS를 사용하며, 보안 취약점에 대한 신속한 대응을 약속합니다.

  • 무료 및 오픈소스: Caddy는 무료로 사용할 수 있으며, 오픈소스로 공개되어 있습니다.

Caddy는 가벼운 웹 어플리케이션 개발 및 배포를 위해 사용될 수 있으며, 간단한 정적 웹사이트 호스팅 및 API 게이트웨이 등에도 사용될 수 있습니다.

 

NPM과 Caddy의 차이점

 

Caddy와 Nginx Proxy Manager는 모두 리버스 프록시 서버를 관리하는 도구입니다. 그러나 두 도구 간에는 몇 가지 차이점이 있습니다.

  1. 구성 방식: Caddy는 간단한 구성 파일로 구성됩니다. 이 파일은 Caddyfile이라고하며 YAML 형식으로 작성됩니다. 반면 Nginx Proxy Manager는 GUI를 통해 구성됩니다. 이를 통해 사용자가 웹 브라우저에서 대화식으로 구성을 조작할 수 있습니다.

  2. 기능: Caddy는 통합 HTTPS 지원, 자동 인증서 발급 및 갱신, 그리고 HTTP/3 지원 등 몇 가지 고급 기능을 제공합니다. 반면 Nginx Proxy Manager는 다중 호스트 지원, SSL 인증서 관리, 사용자 관리 등의 기본적인 프록시 기능을 제공합니다.

  3. 성능: Caddy는 Go 언어로 작성되어 있으며, 이는 빠른 실행 속도를 제공합니다. 반면 Nginx Proxy Manager는 C++로 작성된 Nginx 엔진을 사용하며, 이는 높은 성능을 보장합니다.

  4. 라이선스: Caddy는 기본적으로 Apache 2.0 라이선스를 사용합니다. 반면 Nginx Proxy Manager는 GPL 라이선스를 사용합니다.

종합적으로, Caddy는 고급 기능을 제공하며 구성이 간단합니다. 반면 Nginx Proxy Manager는 기본적인 프록시 기능을 제공하며 GUI를 통해 쉽게 구성할 수 있습니다. 이러한 차이점을 고려하여 어떤 도구를 사용할지 결정해야 합니다.

 

Caddy 컨테이너 생성하기

저는 클라우드플레어를 사용하지만 안하시는분들도있기떄문에 기본편 하나 클플편 하나로 작성하겠습니다.

컨테이너 생성전에 미리 디렉터리와 Caddy파일을 생성해주세요.

mkdir -p /data/caddy
cd /data/caddy
vi Caddyfile

image.png.jpg

 

Caddyfile의 내용은 아래와같습니다.

마치 nginx 기본페이지를 띄워주는것과 똑같은 형식이라고 보시면되겠습니다.

example.com {
    root * /usr/share/caddy
    file_server
}

docker-compose.yml

version: "3"

services:
  caddy:
    image: caddy
    container_name: caddy
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./data/caddy:/data
    environment:
      - ACME_AGREE=true
      - ACME_CA=https://acme-v02.api.letsencrypt.org/directory
      - ACME_EMAIL=your_email@example.com

image.png.jpg

 

저는 도메인을 example.com 대신에 caddy.dalso.org로 만들었고

 

접속하면 아래처럼 https가 적용된 사이트를 확인하실 수 있습니다.

 

image.png.jpg

 

리버스프록시 사용하기

사실 caddy를 사용하려는 목적은 리버스프록시이죠? 

 

DSM의 5000번 포트를 리버스프록시해주는 예시입니다.

 

Caddyfile에 추가해주시면 됩니다. 

 

example.com {
    reverse_proxy DSM_IP:5000 {
    }
}

https르 사용하고 사설인증서를 사용하는경우 단순하게 https:/ip:port를 사용하면 에러가발생하는데요.

reverse_porxy {안에 아래 내용을 추가해주시면 됩니다

transport http {
            tls_insecure_skip_verify
          }

Caddy 파일이 변경되었다고 컨테이너에서 바로 반영되지는 않는데요

다행히 nginx reload 와 같은방식으로 caddy에서도 아래와같은 명령어를 사용해서reload가 가능합니다.

 

$ docker exec <container_name> caddy reload --config /etc/caddy/Caddyfile
 

혹시 에러가 나오신다면 아래명령어를 통해 어떤부분이 잘못되었는지도 확인 하고 고쳐줍니

$ docker exec <container_name> caddy fmt --overwrite /etc/caddy/Caddyfile
 

아무튼 이 두줄로끗...

image.png.jpg

 

일단 여기까지가 1차입니다.

 

클플도메인을 이용한건과 WAF기능 등 사용할것들에 대해서는 2차로 작성해보겠습니다.

신고공유스크랩
24
이해하면 2023.06.26. 23:58
GUI 없으면 암것도 못하는 1인 으로도 가기가 어려울듯 합니다 ㅠ.ㅠ 나중에 GUI를 누군가 구현 해주실듯.
12

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
가이드 Ubuntu 24.04 LTS Desktop 원격 접속 설정하기(SSH,RDP) 3 달소 1일 전18:33 91 +1
가이드 Ubuntu 24.04 LTS Server 설치해보기 달소 1일 전17:40 172 +2
잡담 Ubuntu 24 가 정식출시되었습니다~~ 8 달소 1일 전10:37 278 +2
3872 잡담
file
몰래컴퓨터 2시간 전00:30 28 0
3871 질문
image
무백 5시간 전21:45 51 0
3870 잡담
normal
kmw_ 1일 전21:52 355 0
3869 후기
normal
ljr10 1일 전21:18 102 0
3868 가이드
image
달소 1일 전19:06 61 0
3867 가이드
image
달소 1일 전18:33 91 +1
3866 가이드
image
달소 1일 전18:09 93 0
3865 가이드
image
달소 1일 전17:40 172 +2
3864 질문
normal
까칠한나그네 1일 전15:44 81 0
3863 잡담
image
달소 1일 전10:37 278 +2
3862 가이드
image
달소 2일 전23:10 86 +1
3861 가이드
image
달소 2일 전22:54 90 0
3860 질문
normal
감자칩 2일 전18:56 206 0
3859 질문
image
게르노 2일 전16:08 75 0
3858 질문
image
동도리군 2일 전12:14 94 0
3857 정보
image
달소 2일 전08:21 175 +1
3856 잡담
image
달소 2일 전07:46 303 +1
3855 가이드
image
달소 2일 전07:24 288 0
3854 질문
normal
서버구축하자 3일 전13:09 429 0
3853 질문
image
미스터빈 4일 전20:09 233 0