728x90
반응형
# cloudflared 설치
$ wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
$ sudo dpkg -i cloudflared-linux-amd64.deb
$ cloudflared tunnel login
** login 후, dns 설정 완료 필요(네임서버를 cloudflare 로 변경 필요)
# DNS 자동 전파 완료 확인
nslookup endless.thesysm.com
# 또는
dig endless.thesysm.com
# 터널 생성
$ cloudflared tunnel create `터널명` # 터널 생성
$ cloudflared tunnel delete `터널명` # 터널 삭제
$ cloudflared tunnel list # 터널 리스트
$ cloudflared tunnel info `터널명` # 터널 정보 확인
# 터널과 도메인 연결
$ cloudflared tunnel route dns `터널명` `도메인`
# 도메인 준비; 예시들 :
cloudflared tunnel route dns mywebserver mywebsite.com
cloudflared tunnel route dns mywebserver blog.mydomain.com
cloudflared tunnel route dns mywebserver home.mysite.net
cloudflared tunnel route dns mywebserver server.example.org
# 서브도메인 사용; 이미 도메인이 있는 경우, 서브도메인 생성:
cloudflared tunnel route dns mywebserver home.yourdomain.com
cloudflared tunnel route dns mywebserver api.yourdomain.com
cloudflared tunnel route dns mywebserver dev.yourdomain.com
# 로컬 서버에 설정 파일 생성 및 설정(~/.cloudflared/config.yml)
# 설정 파일 생성 (~/.cloudflared/config.yml)
tunnel: myhome
credentials-file: ~/.cloudflared/[터널ID].json
ingress:
- hostname: http://www.homeserver.com
service: http://localhost:8000
- service: http_status:404
# 터널 시작
$ cloudflared tunnel run `터널명`
# 자동 시작 시스템 서비스 등록
# cloudflared를 시스템 서비스로 설치
sudo cloudflared service install
# 서비스 시작
sudo systemctl start cloudflared
sudo systemctl enable cloudflared # 부팅시 자동 시작
# 상태 확인
sudo systemctl status cloudflared
# ingress 설정 해석
- hostname: www.homeserver.com
service: http://localhost:8000
- 의미 : www.homeserver.com 으로 들어오는 요청을 집 서버의 "localhost:8000" 으로 전달
- 작동 방식 : 외부에서 www.homeserver.com 접속 -> cloudflare 터널 -> 집 서버 8000번 포트
- service: http_status:404
- 의미 : 위에 매치오디지 않는 모든 요청은 404 에러 반환
- 보안 : 예상치 못한 접근 차단
인터넷 사용자
↓
www.homeserver.com (DNS는 Cloudflare를 가리킴)
↓
Cloudflare 서버 (터널 엔드포인트)
↓
집의 cloudflared 클라이언트
↓
localhost:8000 (집 웹서버)
# ingress 설정 예시
-- 여러 서비스 연결 :
ingress:
- hostname: blog.mysite.com
service: http://localhost:3000 # 블로그 서버
- hostname: api.mysite.com
service: http://localhost:5000 # API 서버
- hostname: files.mysite.com
service: http://localhost:8080 # 파일 서버
- service: http_status:404
-- 서브패스 분기 :
ingress:
- hostname: mysite.com
path: /api/*
service: http://localhost:5000 # API 요청
- hostname: mysite.com
service: http://localhost:3000 # 나머지 요청
- service: http_status:404
-- https 백엔드 (cloudflare 에서 제공하는 ssl 인증서 사용; Let's Encrypt 기반) :
ingress:
- hostname: secure.mysite.com
service: https://localhost:8443
- service: http_status:404
-- https 백엔드 (자체 서명 인증서 사용) :
ingress:
- hostname: www.homeserver.com
service: https://localhost:8443
originRequest:
noTLSVerify: true # 자체 서명 인증서 허용
- service: http_status:404
# Nginx Https 설정 예시
# 설정 파일 편집
sudo nano /etc/nginx/sites-available/default
# 설정 내용:
server {
listen 443 ssl;
server_name www.homeserver.com;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
root /var/www/html;
index index.html;
}
# Nginx 재시작
sudo systemctl restart nginx
-- 고급 Https 설정 (config.yml 작성 예시) :
tunnel: myhome-tunnel
credentials-file: ~/.cloudflared/abc123.json
ingress:
- hostname: www.homeserver.com
service: https://localhost:443
originRequest:
noTLSVerify: true
caPool: /path/to/ca.crt # CA 인증서 (선택사항)
- hostname: api.homeserver.com
service: http://localhost:5000
- service: http_status:404
# HTTPS 강제 리다이렉트 (Cloudflare 대시보드에서도 설정 가능)
# DNS 설정(godaddy) : dns 설정을 cloudflare 로 변경해야 함
1단계 : cloudflare 에 도메인 추가
# 먼저 Cloudflare 계정에서
https://dash.cloudflare.com → "Add a Site"
→ GoDaddy 도메인 입력 (예: homeserver.com)
2단계 : godaddy 에서 네임서버 변경
# GoDaddy 계정 로그인
→ "My Products"
→ "Domains"
→ 도메인 선택
→ "DNS" 또는 "Nameservers" 클릭
→ "Change Nameservers" 선택
** 기존 godaddy 네임서버 :
ns01.domaincontrol.com
ns02.domaincontrol.com
** 신규 cloudflare 네임서버 (실제 네임서버는 cloudflare 에서 제공받은 것으로 사용) :
mcgrory.ns.cloudflare.com
treasure.ns.cloudflare.com
3단계 : dns 전파 시간 대기
시간: 24-48시간 (보통 몇 시간 내 완료)
확인: nslookup homeserver.com 또는 dig homeserver.com
# 상세 godaddy 설정 : **현재는 godaddy 에 네임서버만 cloudflare 로 바꾸면 자동으로 처리됨
네임서버 변경 방법:
1. GoDaddy 로그인 → https://account.godaddy.com
2. 도메인 관리 → "My Products" → "All Products and Services"
3. 도메인 선택 → 해당 도메인 옆 "DNS" 버튼
4. 네임서버 섹션 → "Change" 클릭
5. Custom nameservers 선택
6. Cloudflare 네임서버 입력:
ava.ns.cloudflare.com
kai.ns.cloudflare.com
7. save
이후 cloudflare 설정 :
dns 레코드 자동 생성 : cloudflare 가 기존 dns 레코드를 자동으로 가져옴
# DNS 자동 전파 완료 확인
nslookup endless.thesysm.com
# 또는
dig endless.thesysm.com
# 자동 시작 시스템 서비스 등록
# cloudflared를 시스템 서비스로 설치
sudo cloudflared service install
# 서비스 시작
sudo systemctl start cloudflared
sudo systemctl enable cloudflared # 부팅시 자동 시작
# 상태 확인
sudo systemctl status cloudflared
728x90
반응형
'코딩' 카테고리의 다른 글
| Gunicorn 설치 및 설정 (0) | 2025.08.26 |
|---|---|
| nginx 설치 및 설정 (0) | 2025.08.24 |
| 데이터 전처리 및 파이프라인 (0) | 2025.08.22 |
| endless project timeline & flow (0) | 2025.08.06 |
| django migration Reset (0) | 2025.08.06 |