리버스 프록시 서버 구성 — N100으로 충분한 이유
웹사이트, API 서버, 관리자 패널을 각각 다른 서버에서 운영할 때, 외부에서는 하나의 도메인으로 접근하게 하려면 리버스 프록시가 필요합니다. 고성능 서버가 필요할 것 같지만, 실제로는 N100 미니PC 하나면 충분합니다. Caddy를 활용한 자동 HTTPS 설정과 멀티서비스 라우팅까지 다룹니다.
2~5%
CPU 사용률
~200MB
메모리 사용
6W
TDP
0원
SSL 인증서 비용
1리버스 프록시란
리버스 프록시는 클라이언트(브라우저)와 백엔드 서버 사이에 위치하여, 요청을 대신 받아서 적절한 백엔드로 전달하는 중간 서버입니다.
클라이언트 → 리버스 프록시 (N100) → 백엔드 서버들
example.com → 웹사이트 서버 (10.x.x.11:3000)
api.example.com → API 서버 (10.x.x.12:8080)
admin.example.com → 관리자 패널 (10.x.x.13:4000)
SSL 종단점 통합
HTTPS 인증서를 프록시 한 곳에서 관리합니다. 백엔드 서버는 HTTP로만 통신하면 되므로 설정이 간단합니다.
백엔드 서버 은닉
외부에서 백엔드 서버의 IP와 포트를 알 수 없습니다. 공격 표면이 줄어듭니다.
도메인 기반 라우팅
하나의 공인 IP로 여러 서비스를 도메인 또는 경로 기반으로 분배할 수 있습니다.
2N100이면 충분한 이유
리버스 프록시는 요청을 받아서 전달하는 역할이라, CPU와 메모리를 거의 사용하지 않습니다. 실제 운영 중인 N100 미니PC의 리소스 사용량을 공유합니다.
| 항목 | 유휴 시 | 일반 부하 | 피크 시 |
|---|---|---|---|
| CPU 사용률 | 0.5~1% | 2~5% | 8~15% |
| 메모리 사용 | ~150MB | ~200MB | ~300MB |
| 동시 연결 수 | ~10 | ~100 | ~500 |
| CPU 온도 | 35~40°C | 40~50°C | 50~60°C |
소규모 사무실에서 N100은 과잉 스펙
동시 접속 500 이상에서도 CPU 15% 수준입니다. 소규모 사무실에서 리버스 프록시 용도로는 N100이 오히려 여유 있는 스펙입니다. 남는 리소스로 모니터링 에이전트나 DNS 서버를 함께 돌릴 수도 있습니다.
3Caddy 설치와 기본 설정
Caddy는 Go로 작성된 웹 서버로, 자동 HTTPS가 가장 큰 장점입니다. 도메인을 설정하면 Let's Encrypt 인증서를 자동으로 발급하고 갱신합니다.
# Caddy 설치 (Ubuntu/Debian) sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy # 서비스 확인 sudo systemctl status caddy # 설정 파일 위치 # /etc/caddy/Caddyfile
기본 Caddyfile
# /etc/caddy/Caddyfile
# 글로벌 설정
{
email admin@example.com # Let's Encrypt 인증서 발급용
}
# 기본 사이트
example.com {
reverse_proxy 10.x.x.11:3000
}
# 설정 적용
sudo caddy reload --config /etc/caddy/Caddyfile이게 전부입니다
도메인과 백엔드 주소 두 줄이면 HTTPS 리버스 프록시가 완성됩니다. 인증서 발급, 갱신, HTTP→HTTPS 리다이렉트까지 전부 자동입니다.
4자동 HTTPS — Let's Encrypt
Caddy는 도메인을 설정하면 자동으로 Let's Encrypt에서 인증서를 발급받습니다. 갱신도 만료 30일 전에 자동으로 처리합니다. 수동 개입이 전혀 필요 없습니다.
| 기능 | Caddy | Nginx + certbot |
|---|---|---|
| 인증서 발급 | 자동 | certbot 명령어 실행 |
| 인증서 갱신 | 자동 | cron 등록 필요 |
| HTTP→HTTPS 리다이렉트 | 자동 | 설정 추가 필요 |
| OCSP 스테이플링 | 자동 | 설정 추가 필요 |
| TLS 1.3 | 기본 활성 | 설정 확인 필요 |
포트 80/443이 열려 있어야 합니다
Let's Encrypt 인증을 위해 포트 80과 443이 외부에서 접근 가능해야 합니다. OPNsense를 사용한다면 WAN 방화벽에서 이 포트를 N100의 내부 IP로 포트포워딩해야 합니다.
5멀티서비스 라우팅
하나의 리버스 프록시에서 여러 서비스를 도메인이나 경로 기반으로 라우팅할 수 있습니다.
서브도메인 기반 라우팅
# /etc/caddy/Caddyfile
# 메인 웹사이트
example.com {
reverse_proxy 10.x.x.11:3000
}
# API 서버
api.example.com {
reverse_proxy 10.x.x.12:8080
}
# 관리자 패널 (IP 제한 추가)
admin.example.com {
@blocked not remote_ip 10.x.x.0/24
respond @blocked "Forbidden" 403
reverse_proxy 10.x.x.13:4000
}경로 기반 라우팅
# 하나의 도메인에서 경로별로 분배
example.com {
# /api/* 경로는 API 서버로
handle /api/* {
reverse_proxy 10.x.x.12:8080
}
# /admin/* 경로는 관리자 서버로
handle /admin/* {
reverse_proxy 10.x.x.13:4000
}
# 나머지는 웹사이트 서버로
handle {
reverse_proxy 10.x.x.11:3000
}
}6안정성 튜닝
리버스 프록시는 24시간 무중단으로 운영해야 합니다. N100 미니PC의 안정성을 높이기 위한 설정들을 소개합니다.
CPU 터보 부스트 비활성화
터보 부스트를 끄면 발열이 줄고 클럭이 안정적으로 유지됩니다. 프록시 서버는 순간 성능보다 일관된 성능이 중요합니다.
전원 관리 고정
CPU 거버너를 'performance' 또는 'powersave'로 고정합니다. 'ondemand'는 클럭 변동이 발생하여 간헐적 지연이 생길 수 있습니다.
systemd 자동 재시작
Caddy 서비스에 Restart=always를 설정하여, 비정상 종료 시 자동으로 재시작하도록 합니다.
# CPU 터보 부스트 비활성화 (Intel N100) echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo # CPU 거버너 고정 echo "powersave" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor # Caddy systemd 설정 확인 sudo systemctl cat caddy | grep Restart # Restart=on-failure (기본값, 충분) # 메모리 스왑 최소화 (충분한 RAM이 있는 경우) echo 10 | sudo tee /proc/sys/vm/swappiness
7Caddy vs Nginx 비교
| 항목 | Caddy | Nginx |
|---|---|---|
| 설정 난이도 | 매우 쉬움 | 보통~어려움 |
| 자동 HTTPS | 내장 | certbot 별도 설치 |
| 성능 | 우수 | 매우 우수 |
| 생태계/레퍼런스 | 성장 중 | 매우 풍부 |
| 설정 파일 크기 | 5~10줄 | 30~50줄 |
| 바이너리 크기 | ~40MB (단일 바이너리) | ~1MB (모듈식) |
| 메모리 사용 | ~30MB (유휴) | ~5MB (유휴) |
소규모 환경에서는 Caddy 권장
대규모 트래픽이나 복잡한 설정이 필요하면 Nginx가 유리하지만, 소규모 사무실에서 몇 개 서비스를 라우팅하는 용도로는 Caddy의 간결함이 압도적입니다. 설정 파일 5줄이면 자동 HTTPS 리버스 프록시가 완성됩니다.
정리
리버스 프록시 구축 체크리스트
- N100 미니PC — TDP 6W, CPU 2~5% 수준으로 프록시에 충분
- Caddy 설치 — 공식 저장소에서 패키지 설치
- Caddyfile에 도메인과 백엔드 주소만 입력하면 HTTPS 자동 설정
- 서브도메인 또는 경로 기반으로 멀티서비스 라우팅
- 관리자 패널은 IP 제한으로 접근 통제
- 터보 부스트 비활성화로 발열과 클럭 안정성 확보
- OPNsense에서 포트 80/443을 N100으로 포트포워딩
- systemd 자동 재시작으로 무중단 운영
리버스 프록시에 고성능 서버는 필요 없습니다. N100 미니PC 하나면 충분하고, Caddy를 사용하면 설정도 몇 줄이면 끝납니다. 월 전기세 1,500원 정도로 자동 HTTPS + 멀티서비스 라우팅을 운영할 수 있습니다.
본 글은 실제 N100 미니PC에서 Caddy를 운영한 경험을 기반으로 작성되었습니다. IP 주소, 도메인, 포트 번호는 예시이며 실제 환경에 맞게 변경해야 합니다. 본 콘텐츠의 비상업적 공유는 자유이나, 상업적 이용 시 문의 페이지를 통해 연락 바랍니다.
서버 인프라 구축이 필요하신가요?
Treeru는 리버스 프록시, SSL 인증서, 도메인 라우팅 등 웹 인프라 전반의 설계와 구축을 지원합니다. 비용 효율적인 서버 구성을 상담받으세요.
인프라 구축 상담댓글
(4개)로그인하면 댓글을 작성할 수 있습니다.
터보 부스트 끄고 안정성을 높이는 팁이 실용적입니다. 프록시 서버는 피크 성능보다 일관된 성능이 중요하니까요. 좋은 글 감사합니다.
웹사이트 3개를 하나의 서버에서 돌리고 있었는데, 리버스 프록시로 분리하면 관리가 훨씬 편하겠네요. 미니PC 하나 추가 구매해야겠습니다.
N100의 CPU 사용률이 2~5%라는 데이터가 설득력 있습니다. 리버스 프록시 전용으로 고성능 서버를 쓸 필요가 없다는 점을 팀에 공유했습니다.
관련 글
© 2026 TreeRU. All rights reserved.
본 콘텐츠의 저작권은 TreeRU에 있으며, 출처를 밝히지 않은 무단 전재 및 재배포를 금합니다. 인용 시 출처(treeru.com)를 반드시 명시해 주세요.