
TrueNAS SCALE을 이용한 HTTPS CDN 구축 방법
TrueNAS SCALE을 기반으로 HTTPS CDN(Content Delivery Network)을 구축하려면, 기본적으로 웹 서버, 캐싱 프록시, HTTPS 인증서 및 보안 설정이 필요하다.
🚀 1. 필요한 구성 요소
CDN을 구축하기 위해 다음과 같은 요소를 설정해야 한다.
요소 | 역할 |
TrueNAS SCALE | 기본 스토리지 및 파일 제공 |
NGINX (또는 Caddy) | 웹 서버 및 리버스 프록시 역할 |
Let's Encrypt / Cloudflare SSL | HTTPS 인증서 발급 및 자동 갱신 |
FastCGI 캐싱 or Redis | 캐싱 최적화 |
GeoDNS (선택사항) | 여러 지역에 캐시 서버 배포 시 사용 |
Fail2Ban / 방화벽 | 보안 강화 |
🛠 2. TrueNAS SCALE에 HTTPS CDN 구축하기
1️⃣ NGINX 설치 및 설정
먼저, TrueNAS SCALE의 앱스 또는 Docker 컨테이너를 이용해 NGINX를 배포한다.
📌 방법 1: TrueNAS 앱스토어를 이용한 설치
- TrueNAS SCALE의 앱스토어 → NGINX Proxy Manager 설치
- 설정에서 도메인 및 SSL 적용
- 캐시 옵션 활성화
📌 방법 2: Docker로 NGINX 설치
TrueNAS SCALE의 Kubernetes 지원 기능을 이용해 NGINX 컨테이너를 배포할 수도 있다.
docker run -d \
--name my-cdn \
-p 80:80 -p 443:443 \
-v /mnt/data/cdn:/usr/share/nginx/html \
-v /mnt/data/nginx.conf:/etc/nginx/nginx.conf \
nginx
💡 위 명령어에서 /mnt/data/cdn에 CDN용 파일을 저장하고, nginx.conf를 수동 설정할 수 있다.
2️⃣ HTTPS 적용 (Let's Encrypt or Cloudflare SSL)
HTTPS를 사용하려면 SSL 인증서가 필요하다.
📌 방법 1: Let's Encrypt + Certbot 사용
apt install certbot python3-certbot-nginx -y
certbot --nginx -d cdn.example.com
- 자동으로 NGINX 설정을 수정해 HTTPS 적용
- 90일마다 인증서 자동 갱신 (certbot renew --dry-run으로 확인)
📌 방법 2: Cloudflare SSL 적용
- Cloudflare에서 SSL/TLS 설정 → "Flexible" 또는 "Full (Strict)" 선택
- Cloudflare Origin Certificate를 생성하여 NGINX에 적용
- nginx.conf 파일을 수정하여 Cloudflare SSL 사용
server {
listen 443 ssl;
server_name cdn.example.com;
ssl_certificate /etc/nginx/cloudflare-origin.pem;
ssl_certificate_key /etc/nginx/cloudflare-origin-key.pem;
location / {
root /mnt/data/cdn;
index index.html;
}
}
💡 Cloudflare SSL은 인증서 자동 갱신이 필요 없음.
3️⃣ 캐싱 최적화 (FastCGI + Redis)
CDN의 성능을 높이려면 캐싱을 최적화해야 한다.
📌 NGINX FastCGI 캐싱 활성화
nginx.conf에 캐시 설정을 추가한다.
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=FASTCGI_CACHE:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
server {
location / {
fastcgi_cache FASTCGI_CACHE;
fastcgi_cache_valid 200 301 302 10m;
fastcgi_cache_use_stale error timeout updating;
root /mnt/data/cdn;
}
}
📌 Redis 캐싱 활성화 (선택사항)
TrueNAS SCALE에 Redis를 설치하여 캐싱 성능을 높일 수도 있다.
docker run -d --name redis-cache -p 6379:6379 redis
그리고 NGINX에서 Redis 캐싱을 활성화:
server {
location / {
set $redis_key $uri;
redis_pass redis-cache:6379;
default_type application/octet-stream;
}
}
4️⃣ 보안 강화 (Fail2Ban + 방화벽)
CDN은 보안 공격에 노출되기 쉬우므로 방어 기법이 필요하다.
📌 Fail2Ban 설정 (SSH, HTTP 공격 방지)
apt install fail2ban -y
nano /etc/fail2ban/jail.local
다음 설정 추가:
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 3
Fail2Ban 활성화:
systemctl enable fail2ban
systemctl restart fail2ban
📌 방화벽 설정 (TrueNAS SCALE에서 방화벽 활성화)
TrueNAS Networking → Firewall Rules에서 아래 규칙 추가:
✅ 허용: 80, 443 (HTTP, HTTPS)
❌ 차단: 22 (SSH 원격 접속 제한)
❌ 차단: 기타 불필요한 포트
🚀 CDN 성능 튜닝 팁
1️⃣ NGINX gzip 압축 활성화
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
2️⃣ 브라우저 캐싱 설정
location / {
expires 30d;
add_header Cache-Control "public, max-age=2592000";
}
3️⃣ HTTP/2 및 Brotli 압축 사용
server {
listen 443 ssl http2;
brotli on;
brotli_types text/plain text/css application/javascript;
}
4️⃣ Cloudflare CDN과 함께 사용하여 DDoS 방어
- Cloudflare "Under Attack Mode" 활성화
- WAF(Web Application Firewall) 설정
📝 결론: TrueNAS SCALE HTTPS CDN 구축 요약
✅ TrueNAS에 NGINX 설치 (Docker or App Store)
✅ Let's Encrypt 또는 Cloudflare SSL로 HTTPS 활성화
✅ FastCGI 캐싱 또는 Redis로 속도 최적화
✅ Fail2Ban + 방화벽으로 보안 강화
✅ Cloudflare를 추가하여 DDoS 방어 및 캐싱 향상 가능
이 방법을 적용하면 안정적이고 빠른 HTTPS CDN을 구축할 수 있으며, 트래픽 부담을 줄이면서 보안도 강화할 수 있다.
'IT생활' 카테고리의 다른 글
Windows에서 멀티 터치를 하면 커서가 중간 지점에 위치하는 이유 (0) | 2025.03.15 |
---|---|
운영체제별 USB-C DP Alt Mode 터치 디스플레이 지원 여부 (2) | 2025.03.15 |
AV1 코덱의 차별점과 화질 개선 특성 (0) | 2025.03.15 |
3-Pass 인코딩: 2-Pass 인코딩과의 차이점과 화질 개선 정도 (0) | 2025.03.15 |
CPU AV1 인코딩 vs NVENC AV1 인코딩: 퀄리티 비교 및 분석 (0) | 2025.03.15 |