홈 서버 구축기 - DDNS 및 리버스 프록시 세팅

김남주·2025년 3월 14일

홈 서버 구축기

목록 보기
3/7

Docker-Compose.yaml

services:
  nginx-proxy-manager:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    networks:
      - proxy-network
    
  cloudflare-ddns:
    image: favonia/cloudflare-ddns:latest
    network_mode: host
    restart: always
    read_only: true
    cap_drop: [all]
    security_opt: [no-new-privileges:true]
    environment:
      - CLOUDFLARE_API_TOKEN=REPLACE_CLOUDFLARE_API_TOKEN
      - DOMAINS=*.example.com,example.com,www.example.com
      - PROXIED=false

networks:
  proxy-network:
    driver: bridge
    external: true

Cloudflare ddns 세팅

유동 IP는 IP 임대 시간이 끝나면 다른 IP로 재 할당 된다

따라서, IP가 변경될 때마다 도메인서버에 설정을 바꿔주어야 한다

하지만, 가비아에서 구매한 도메인의 경우 별도의 API를 제공하고 있지 않아, 클라우드 플레어를 통해 자동화 한다

클라우드플레어에 도메인을 등록하고, 가비아에서 네임서버를 변경해주었다

이후, 클라우드플레어 대쉬보드 -> 계정관리 -> 계정 API 토큰 -> 토큰생성 -> 영역 DNS 편집 템플릿을 선택한다

아래화면창에 뜨면, 적절히 영역을 설정해준뒤

발급받은 API키는 잘 위 도커 컴포즈 파일의 CLOUDFLARE_API_TOKEN 변수로 설정해주자

리버스 프록시 세팅

HTTP 포트는 하나, 서비스는 여러개

Proxy 개념

프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다.

Reverse Proxy?

컴퓨터 네트워크에서 클라이언트를 대신해서 한 대 이상의 서버로부터 자원을 추출하는 프록시 서버의 일종

Nginx Proxy Manager

GUI기반 nginx 세팅 프로그램

DNS Challenge를 통한 와일드카드 인증서 발급

프록시 호스트 등록

Docker 브릿지 네트워크를 등록하고, Docker DNS를 활용하면 간편하게 세팅이 가능하다

profile
T자형 개발자를 꿈꾸는 학생 개발자입니다

0개의 댓글