본문으로 건너뛰기

Cloudflare Pages에 배포하기 ​

Cloudflare Pages는 대역폭 제한 없이 빠른 글로벌 정적 사이트 호스팅을 제공합니다.

빠른 배포 ​

  1. Cloudflare Pages로 이동합니다
  2. "Create a project"를 클릭합니다
  3. GitHub 저장소를 연결합니다

빌드 설정 ​

설정값
프레임워크 프리셋None
빌드 명령어npm run build
빌드 출력 디렉터리dist
루트 디렉터리/

환경 변수 ​

Settings → Environment variables에서 다음을 추가하세요:

변수값
NODE_VERSION18
SIMPLE_MODEfalse (선택)
VITE_BRAND_NAME사용자 지정 브랜드 이름 (선택)
VITE_BRAND_LOGOpublic/ 기준 로고 경로 (선택)
VITE_FOOTER_TEXT사용자 지정 푸터/저작권 텍스트 (선택)
VITE_DEFAULT_LANGUAGE기본 UI 언어, 예: fr (선택)

설정 파일 ​

public 폴더에 _headers를 만드세요:

# Required security headers for SharedArrayBuffer (used by LibreOffice WASM)
/*
  Cross-Origin-Embedder-Policy: require-corp
  Cross-Origin-Opener-Policy: same-origin
  Cross-Origin-Resource-Policy: cross-origin

# Pre-compressed LibreOffice WASM binary
/libreoffice-wasm/soffice.wasm.gz
  Content-Type: application/wasm
  Content-Encoding: gzip
  Cache-Control: public, max-age=31536000, immutable

# Pre-compressed LibreOffice WASM data
/libreoffice-wasm/soffice.data.gz
  Content-Type: application/octet-stream
  Content-Encoding: gzip
  Cache-Control: public, max-age=31536000, immutable

# Cache WASM files aggressively
/*.wasm
  Cache-Control: public, max-age=31536000, immutable
  Content-Type: application/wasm

# Service worker
/sw.js
  Cache-Control: no-cache

중요

Word/ODT/Excel/PowerPoint를 PDF로 변환하려면 Cross-Origin-Embedder-Policy 및 Cross-Origin-Opener-Policy 헤더가 필요합니다. 이 헤더가 없으면 SharedArrayBuffer를 사용할 수 없고 LibreOffice WASM 엔진이 초기화되지 못합니다.

SPA 라우팅을 위해 _redirects를 만드세요:

/*    /index.html   200

사용자 지정 도메인 ​

  1. Pages 프로젝트로 이동합니다
  2. "Custom domains"를 클릭합니다
  3. 도메인을 추가합니다
  4. 도메인이 Cloudflare에 있으면 Cloudflare가 DNS를 자동으로 설정합니다

장점 ​

  • 무료 무제한 대역폭
  • 300개 이상의 엣지 로케이션을 갖춘 글로벌 CDN
  • 자동 HTTPS
  • 풀 리퀘스트용 미리보기 배포
  • 빠른 빌드

문제 해결 ​

대용량 파일 업로드 ​

Cloudflare Pages는 최대 25MB 파일을 지원합니다. WASM 모듈은 문제없겠지만 제한에 걸린다면 다음을 고려하세요:

bash
# Split large files during build
npm run build

Worker 크기 제한 ​

고급 라우팅에 Cloudflare Workers를 사용하는 경우, 무료 플랜에는 1MB 제한이 있다는 점에 유의하세요.

CORS 프록시 Worker (디지털 서명용) ​

디지털 서명 도구는 인증서 체인을 가져오기 위해 CORS 프록시가 필요합니다. 포함된 worker를 배포하세요:

bash
cd cloudflare
npx wrangler login
npx wrangler deploy

보안 기능 ​

기능설명
URL 제한인증서 URL만 허용
파일 크기 제한요청당 최대 10MB
속도 제한IP당 분당 60회 (KV 필요)
사설 IP 차단localhost, 내부 IP 차단

속도 제한 활성화 ​

bash
# Create KV namespace
npx wrangler kv namespace create "RATE_LIMIT_KV"

# Add to wrangler.toml with returned ID:
# [[kv_namespaces]]
# binding = "RATE_LIMIT_KV"
# id = "YOUR_ID"

npx wrangler deploy

프록시 URL로 빌드 ​

bash
VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build

또는 Docker로:

bash
export VITE_CORS_PROXY_URL="https://your-worker.workers.dev"
DOCKER_BUILDKIT=1 docker build \
  --secret id=VITE_CORS_PROXY_URL,env=VITE_CORS_PROXY_URL \
  -t your-bentopdf .

참고: HMAC 서명 설정은 README를 참고하세요.

AGPL-3.0과 상용 라이선스의 이중 라이선스로 제공됩니다.