Team Library 도메인 및 HTTPS 배포 가이드
목적
team-library.biny.cloud를 Docusaurus 정적 사이트에 연결하고, nginx와 HTTPS까지 안정적으로 운영하기 위한 기준 문서입니다.
적용 대상
- 도메인:
team-library.biny.cloud - 프로젝트 경로:
/root/.openclaw/workspace/docusaurus-team-library - 배포 경로:
/var/www/team-library - 웹서버: nginx
구성 요약
- 콘텐츠 원본:
docusaurus-team-library/ - 빌드 결과물:
docusaurus-team-library/build/ - 실제 서비스 경로:
/var/www/team-library - nginx 적용 파일:
/etc/nginx/sites-available/team-library - nginx enable 링크:
/etc/nginx/sites-enabled/team-library - 인증서 경로:
/etc/letsencrypt/live/team-library.biny.cloud/
선행 조건
- DNS에서
team-library.biny.cloud가 현재 서버 IP를 가리켜야 합니다. - 프로젝트에서
npm run build가 정상 동작해야 합니다. - 서버에 nginx와 certbot이 설치되어 있어야 합니다.
1. 빌드 생성
프로젝트 폴더로 이동한 뒤 정적 사이트를 빌드합니다.
cd /root/.openclaw/workspace/docusaurus-team-library
npm run build
빌드가 성공하면 build/ 폴더가 생성됩니다.
2. 서비스 경로에 배포
빌드 결과물을 nginx가 읽는 경로로 동기화합니다.
sudo mkdir -p /var/www/team-library
sudo rsync -av --delete /root/.openclaw/workspace/docusaurus-team-library/build/ /var/www/team-library/
3. nginx 설정 적용
프로젝트 안의 nginx 템플릿을 실제 서버 설정으로 복사합니다.
sudo cp /root/.openclaw/workspace/docusaurus-team-library/deploy/nginx/team-library.biny.cloud.conf /etc/nginx/sites-available/team-library
sudo ln -s /etc/nginx/sites-available/team-library /etc/nginx/sites-enabled/team-library
이미 심볼릭 링크가 있으면 ln -s 단계는 생략해도 됩니다.
4. nginx 설정 검사 및 반영
sudo nginx -t
sudo systemctl reload nginx
이 단계가 끝나면 HTTP 기준으로 사이트가 열려야 합니다.
5. HTTPS 인증서 적용
HTTP 연결이 정상인 상태에서 certbot으로 인증서를 발급합니다.
sudo certbot --nginx -d team-library.biny.cloud
적용이 끝나면 보통 다음 상태가 됩니다.
- HTTP → HTTPS 리다이렉트
- HTTPS 443 응답 활성화
- 인증서 자동 갱신 대상 등록
확인 방법
curl -I http://team-library.biny.cloud
curl -I https://team-library.biny.cloud
정상 예시:
- HTTP:
301 Moved Permanently - HTTPS:
200 OK
운영 중 재배포 명령
문서나 화면을 수정한 뒤에는 보통 아래 명령이면 충분합니다.
cd /root/.openclaw/workspace/docusaurus-team-library
npm run build && sudo rsync -av --delete build/ /var/www/team-library/
정적 파일만 바뀌는 경우에는 nginx reload가 필수는 아닙니다.
자주 발생하는 오류
1) cp: missing destination file operand
원인:
cp명령에서 원본과 대상 경로 사이 공백이 빠진 경우- 명령이 줄바꿈으로 잘린 경우
정상 형식:
sudo cp /root/.openclaw/workspace/docusaurus-team-library/deploy/nginx/team-library.biny.cloud.conf /etc/nginx/sites-available/team-library
2) HTTP는 열리는데 HTTPS가 다른 서비스로 연결됨
원인:
team-library.biny.cloud용 443 SSL 설정이 없어서 기본 SSL 사이트가 응답하는 경우
해결:
sudo certbot --nginx -d team-library.biny.cloud
3) 배포 후에도 예전 화면이 보임
점검 항목:
npm run build를 실제로 했는지rsync --delete로 반영했는지- 브라우저 캐시 영향은 없는지
- 다른 nginx server block과 충돌하지 않는지
운영 팁
- nginx 템플릿 원본은 프로젝트 안
deploy/nginx/경로를 기준으로 관리합니다. - 서버에서 직접 설정을 수정했다면 프로젝트 쪽 템플릿에도 반영해 두는 것이 좋습니다.
- 장애 대응 시에는 먼저
curl -I로 HTTP/HTTPS 상태를 구분해서 확인합니다.
관련 경로
- 프로젝트:
/root/.openclaw/workspace/docusaurus-team-library - nginx 템플릿:
/root/.openclaw/workspace/docusaurus-team-library/deploy/nginx/team-library.biny.cloud.conf - 배포 스크립트:
/root/.openclaw/workspace/docusaurus-team-library/deploy/deploy-team-library.sh