## 문제점 (현재 운영 서버) - Nginx 설정에 location / 블록 2개 존재 (중복 오류) - 이로 인해 배포 실패 및 웹사이트 접근 불가 ## 해결책 ✅ Option B: /taxbaik/ 프리픽스 완전 제거 - 홈페이지: https://www.taxbaik.com/ - 어드민: https://www.taxbaik.com/admin/ ## 변경사항 ✅ src/TaxBaik.Web.Client/wwwroot/index.html - <base href="/taxbaik/admin/" /> → <base href="/admin/" /> - favicon 경로 수정 ✅ nginx/taxbaik-domains.conf (신규) - 중복 location / 블록 제거 - 하나의 location / 블록만 유지 - proxy_pass: / 경로 처리 ✅ scripts/rollback-nginx.sh (신규) - Nginx 설정 긴급 롤백 ✅ scripts/fix-nginx-final.sh (신규) - 중복 location / 블록 제거 및 적용 ## 다음 단계 (사용자 수동 실행 필수) 1. 운영 서버에 로그인: ssh kjh2064@178.104.200.7 2. 롤백 스크립트 실행: curl -sS https://gitea.taxbaik.com/raw/kjh2064/taxbaik/master/scripts/rollback-nginx.sh | bash 3. 검증: curl -I https://www.taxbaik.com/taxbaik/ → HTTP 200 또는 301 (리다이렉트) ## 배포 순서 1. Nginx 설정 수정 (위 단계) 2. 코드 배포 (자동) 3. E2E 테스트 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
#!/bin/bash
|
||||
# TaxBaik Nginx 설정 최종 수정 (중복 location / 제거)
|
||||
|
||||
set -e
|
||||
|
||||
NGINX_FILE="/etc/nginx/sites-available/taxbaik-domains.conf"
|
||||
BACKUP_FILE="${NGINX_FILE}.backup.$(date +%Y%m%d_%H%M%S)"
|
||||
|
||||
echo "🔧 TaxBaik Nginx 설정 최종 수정"
|
||||
echo "=================================="
|
||||
echo ""
|
||||
|
||||
# 1. 백업 생성
|
||||
echo "1️⃣ 백업 생성..."
|
||||
sudo cp "$NGINX_FILE" "$BACKUP_FILE"
|
||||
echo " ✅ 백업: $BACKUP_FILE"
|
||||
echo ""
|
||||
|
||||
# 2. Python으로 설정 수정
|
||||
echo "2️⃣ 설정 수정 중..."
|
||||
sudo python3 << 'PYTHON_SCRIPT'
|
||||
import re
|
||||
|
||||
nginx_file = "/etc/nginx/sites-available/taxbaik-domains.conf"
|
||||
|
||||
with open(nginx_file, 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
# 첫 번째 location / 블록 제거 (taxbaik 프리픽스 있는 것)
|
||||
# 이것은 이제 필요 없음 (Option B: /taxbaik/ 프리픽스 제거)
|
||||
pattern = r'# /admin 하위 요청을.*?location / \{[^}]*proxy_pass http://127\.0\.0\.1:5001/taxbaik/;[^}]*\}'
|
||||
content = re.sub(pattern, '', content, flags=re.DOTALL)
|
||||
|
||||
# 정리: 공백 정리
|
||||
content = re.sub(r'\n\s*\n\s*\n', '\n\n', content)
|
||||
|
||||
with open(nginx_file, 'w') as f:
|
||||
f.write(content)
|
||||
|
||||
print("✅ Python으로 수정 완료")
|
||||
PYTHON_SCRIPT
|
||||
|
||||
echo ""
|
||||
|
||||
# 3. 수정된 설정 확인
|
||||
echo "3️⃣ 수정된 설정 확인..."
|
||||
echo " ==="
|
||||
sudo grep -A 8 "location /" "$NGINX_FILE" | head -15
|
||||
echo " ==="
|
||||
echo ""
|
||||
|
||||
# 4. 문법 검증
|
||||
echo "4️⃣ Nginx 문법 검증..."
|
||||
if sudo nginx -t 2>&1 | grep -q "successful"; then
|
||||
echo " ✅ 문법 검증 성공"
|
||||
else
|
||||
echo " ❌ 문법 오류 - 롤백 중..."
|
||||
sudo cp "$BACKUP_FILE" "$NGINX_FILE"
|
||||
echo " ✅ 롤백 완료"
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 5. Nginx 재로드
|
||||
echo "5️⃣ Nginx 재로드..."
|
||||
sudo systemctl reload nginx
|
||||
echo " ✅ 재로드 완료"
|
||||
echo ""
|
||||
|
||||
# 6. 최종 확인
|
||||
echo "6️⃣ 최종 확인..."
|
||||
if curl -sf http://127.0.0.1:5001/ > /dev/null; then
|
||||
echo " ✅ 로컬호스트 응답 정상"
|
||||
else
|
||||
echo " ⚠️ 로컬호스트 응답 확인 필요"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "✅ 설정 수정 완료!"
|
||||
echo ""
|
||||
echo "📝 변경 사항:"
|
||||
echo " - 첫 번째 location / 블록 제거 (중복)"
|
||||
echo " - 남은 location / 블록이 / 경로 처리"
|
||||
echo ""
|
||||
echo "🔙 백업 파일: $BACKUP_FILE"
|
||||
@@ -0,0 +1,79 @@
|
||||
#!/bin/bash
|
||||
# TaxBaik Nginx 설정 긴급 롤백 스크립트
|
||||
# 실행: sudo ./rollback-nginx.sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "🔙 TaxBaik Nginx 설정 긴급 롤백"
|
||||
echo "=============================="
|
||||
echo ""
|
||||
|
||||
# 색상 정의
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
NGINX_FILE="/etc/nginx/sites-available/taxbaik-domains.conf"
|
||||
|
||||
# 1. 백업 파일 찾기
|
||||
echo "🔍 최근 백업 파일 찾기..."
|
||||
LATEST_BACKUP=$(ls -t ${NGINX_FILE}.backup* 2>/dev/null | head -1)
|
||||
|
||||
if [ -z "$LATEST_BACKUP" ]; then
|
||||
echo -e "${RED}❌ 백업 파일을 찾을 수 없습니다${NC}"
|
||||
echo ""
|
||||
echo "현재 디렉토리의 백업 파일:"
|
||||
ls -la /etc/nginx/sites-available/taxbaik-domains.conf* 2>/dev/null || echo "없음"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✅ 백업 파일 발견: $LATEST_BACKUP${NC}"
|
||||
echo ""
|
||||
|
||||
# 2. 현재 설정 확인
|
||||
echo "📋 현재 (오류) 설정 확인..."
|
||||
echo -e "${BLUE}"
|
||||
head -35 "$NGINX_FILE" | grep -A 10 "location" || true
|
||||
echo -e "${NC}"
|
||||
echo ""
|
||||
|
||||
# 3. 롤백
|
||||
echo "⏮️ 롤백 중..."
|
||||
cp "$LATEST_BACKUP" "$NGINX_FILE"
|
||||
echo -e "${GREEN}✅ 롤백 완료${NC}"
|
||||
echo ""
|
||||
|
||||
# 4. 문법 검증
|
||||
echo "🔍 Nginx 문법 검증..."
|
||||
if nginx -t 2>&1 | grep -q "successful"; then
|
||||
echo -e "${GREEN}✅ 문법 검증 성공${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ 문법 오류${NC}"
|
||||
nginx -t
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 5. Nginx 재시작
|
||||
echo "🔄 Nginx 재시작..."
|
||||
systemctl restart nginx
|
||||
echo -e "${GREEN}✅ Nginx 재시작 성공${NC}"
|
||||
echo ""
|
||||
|
||||
# 6. 상태 확인
|
||||
echo "🧪 최종 상태 확인..."
|
||||
if systemctl is-active --quiet nginx; then
|
||||
echo -e "${GREEN}✅ Nginx 정상 작동${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ Nginx 비정상${NC}"
|
||||
systemctl status nginx
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "✅ 롤백 완료!"
|
||||
echo ""
|
||||
echo "📝 복구된 설정:"
|
||||
grep -A 5 "location /taxbaik" "$NGINX_FILE" | head -8
|
||||
Reference in New Issue
Block a user