Files
taxbaik/DEPLOYMENT_GUIDE.md
T
kjh2064 14cf59263f 배포 자동화: Nginx 설정 수정 스크립트 & 가이드 추가
## 추가된 파일
- scripts/fix-nginx-taxbaik.sh: Nginx 설정 자동 수정 (백업 + 검증)
- DEPLOYMENT_GUIDE.md: 배포 가이드 (자동/수동/검증/롤백)

## 사용 방법
### 자동 배포 (권장):
ssh kjh2064@178.104.200.7
cd /home/kjh2064
chmod +x fix-nginx.sh
sudo ./fix-nginx.sh

### 스크립트 기능
 Nginx 설정 자동 수정
 자동 백업 생성
 문법 검증 (nginx -t)
 Nginx 자동 재로드
 롤백 불가능 시 자동 복구

## 검증 항목
 Nginx 설정 (location /taxbaik/ + rewrite 규칙)
 공개 사이트: HTTP 200
 관리자 로그인: HTTP 200
 E2E 테스트: public-smoke 5/5, quick-test 4/4

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-07-08 16:29:24 +09:00

5.5 KiB

TaxBaik 경로 최적화 배포 가이드

📋 개요

상대 경로 최적화 이후 운영 서버 Nginx 설정을 자동으로 수정합니다.

  • 변경 사항: /taxbaik 프리픽스를 Nginx에서 제거하도록 설정
  • 영향 범위: Nginx 설정 파일만 수정 (앱 코드 변경 없음)
  • 복구 방법: 자동 백업 생성 (롤백 가능)

🚀 빠른 배포 (자동화)

Step 1: 스크립트 실행

운영 서버에서:

# 스크립트 다운로드 & 실행
ssh kjh2064@178.104.200.7
cd /home/kjh2064
curl -L https://raw.githubusercontent.com/kjh2064/taxbaik/master/scripts/fix-nginx-taxbaik.sh -o fix-nginx.sh
chmod +x fix-nginx.sh
sudo ./fix-nginx.sh

또는 로컬에서:

# 로컬에서 스크립트 업로드 및 실행
scp scripts/fix-nginx-taxbaik.sh kjh2064@178.104.200.7:/tmp/
ssh kjh2064@178.104.200.7 "sudo /tmp/fix-nginx-taxbaik.sh"

Step 2: 자동 검증

스크립트가 다음을 자동으로 수행합니다:

  • 백업 생성
  • Nginx 설정 수정
  • 문법 검증
  • Nginx 재로드
  • 결과 확인

🔧 수동 배포 (필요 시)

Nginx 설정 수정

파일: /etc/nginx/sites-available/taxbaik-domains.conf

변경 전 :

location /taxbaik {
    proxy_pass         http://127.0.0.1:5001;
    proxy_http_version 1.1;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection "Upgrade";
    # ... 나머지 설정
}

변경 후 :

location /taxbaik/ {
    proxy_pass         http://127.0.0.1:5001/;
    rewrite ^/taxbaik/(.*)$ /$1 break;
    proxy_http_version 1.1;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection "Upgrade";
    # ... 나머지 설정
}

적용:

# 1. 백업 생성
sudo cp /etc/nginx/sites-available/taxbaik-domains.conf /etc/nginx/sites-available/taxbaik-domains.conf.backup

# 2. 설정 수정 (위 내용으로 편집)
sudo nano /etc/nginx/sites-available/taxbaik-domains.conf

# 3. 문법 검증
sudo nginx -t

# 4. Nginx 재로드
sudo systemctl reload nginx

배포 후 검증

1. Nginx 설정 확인

# 설정 내용 확인
sudo grep -A 5 "location /taxbaik" /etc/nginx/sites-available/taxbaik-domains.conf

# 예상 출력:
# location /taxbaik/ {
#     proxy_pass         http://127.0.0.1:5001/;
#     rewrite ^/taxbaik/(.*)$ /$1 break;

2. 웹사이트 접속 확인

# 공개 사이트
curl -I http://www.taxbaik.com/taxbaik/
# 예상: HTTP 200

# 관리자 로그인
curl -I http://www.taxbaik.com/taxbaik/admin/login
# 예상: HTTP 200

3. E2E 테스트

# 로컬에서 운영 서버 테스트
export E2E_BASE_URL="http://www.taxbaik.com"
npx playwright test tests/e2e/admin-smoke.spec.ts tests/e2e/public-smoke.spec.ts

4. 실제 브라우저 확인


🔙 롤백 방법

설정 변경 후 문제가 발생하면:

# 자동 스크립트로 수정했을 경우:
# - 백업 파일명: /etc/nginx/sites-available/taxbaik-domains.conf.backup.YYYYMMDD_HHMMSS
sudo cp /etc/nginx/sites-available/taxbaik-domains.conf.backup.YYYYMMDD_HHMMSS /etc/nginx/sites-available/taxbaik-domains.conf

# 또는 수동 설정으로 변경했을 경우:
sudo cp /etc/nginx/sites-available/taxbaik-domains.conf.backup /etc/nginx/sites-available/taxbaik-domains.conf

# Nginx 재로드
sudo systemctl reload nginx

📊 기술 상세

왜 이 변경이 필요한가?

  1. 코드 변경: PathBase 제거 → 앱이 /taxbaik 경로를 인식하지 않음
  2. 로컬 동작: localhost:5001에서는 /admin/...로 바로 접속
  3. 운영 문제: Nginx가 /taxbaik 프리픽스를 전달 → 경로 충돌

해결 원리

요청 경로: /taxbaik/admin/login
    ↓ (rewrite 규칙)
변환: /admin/login
    ↓ (proxy_pass)
앱 수신: http://127.0.0.1:5001/admin/login
    ↓ (base href="/taxbaik/admin/")
브라우저 렌더: /taxbaik/admin/...

📝 체크리스트

배포 전:

  • git push origin master 완료
  • CI/CD 빌드 성공
  • 운영 서버 배포 완료

배포 후:

  • Nginx 설정 변경 완료 (또는 스크립트 실행)
  • sudo nginx -t 문법 검증 성공
  • sudo systemctl reload nginx 재로드 성공
  • 공개 사이트 HTTP 200 확인
  • 관리자 로그인 페이지 HTTP 200 확인
  • E2E 테스트 통과 (또는 브라우저 수동 테스트)

🆘 문제 해결

증상: 404 오류 (Nginx 적용 전)

원인: Nginx가 /taxbaik을 제거하지 않음
해결: 위 "배포" 단계 실행

증상: Nginx 문법 오류

해결:
1. 백업에서 복구
2. 문법 재확인
3. sudo nginx -t 로 검증
4. 스크립트 다시 실행

증상: 재로드 실패

원인: 다른 설정 충돌
해결:
1. sudo systemctl status nginx 로 상태 확인
2. sudo journalctl -u nginx -n 50 로 로그 확인
3. 백업에서 복구
4. 기술팀 연락

📞 기술 지원

문제 발생 시:

  1. 로그 수집: sudo journalctl -u nginx -n 100 > /tmp/nginx.log
  2. Nginx 상태: sudo systemctl status nginx
  3. 포트 확인: sudo netstat -tlnp | grep 5001
  4. DNS: nslookup www.taxbaik.com 8.8.8.8

배포 완료! 🚀