docs: nginx 404 해결 및 bash 문제 해결 내용 추가

This commit is contained in:
happybell80 2025-11-17 19:14:01 +09:00
parent 50e9ad884c
commit 962d85d99c

View File

@ -49,8 +49,9 @@ admin-dashboard/
**nginx 설정** (`nginx-infra/server-nginx-default`):
```nginx
location /admin {
root /home/admin/admin-dashboard/frontend/dist;
try_files $uri $uri/ /index.html;
alias /home/admin/admin-dashboard/frontend/;
try_files $uri $uri/ /admin/index.html;
index index.html;
}
```
@ -89,7 +90,7 @@ localStorage.setItem('auth_token', token)
## 구현 완료
**커밋**: 진행 중
**커밋**: 920672a
**일시**: 2025-11-17
**브랜치**: main
@ -98,6 +99,8 @@ localStorage.setItem('auth_token', token)
- `admin-dashboard/backend/main.py`: frontend 경로 수정
- `admin-dashboard/README.md`: 구조 설명 업데이트
- Git 원격 저장소: `admin-dashboard.git`로 변경
- `admin-dashboard/.gitea/workflows/deploy.yml`: 배포 스크립트 경로 수정 및 포트 충돌 방지
- `nginx-infra/server-nginx-default`: `/admin` 404 해결 - `root``alias` 변경 및 `try_files` 경로 수정
## 교훈
@ -118,3 +121,81 @@ localStorage.setItem('auth_token', token)
- 프로젝트 전체에서 표준 JWT 키(`auth_token`) 사용으로 일관성 확보
- Gateway와 frontend 간 토큰 키 불일치 방지
### CI/CD 배포 스크립트 수정
**문제**: 배포 스크립트가 이전 폴더명(`frontend-base`)을 참조하여 배포 실패
**해결**:
1. **배포 경로 수정** (`admin-dashboard/.gitea/workflows/deploy.yml`):
- `/home/admin/frontend-base``/home/admin/admin-dashboard`
- 백업 경로: `frontend-base.backup.*``admin-dashboard.backup.*`
2. **포트 충돌 방지**:
- 기존 `frontend-base` 컨테이너 강제 제거
- 포트 8000을 사용하는 모든 컨테이너 중지 및 제거
```bash
# 강제로 컨테이너 제거 (포트 충돌 방지)
sudo docker ps -a --filter "name=admin-dashboard" --format "{{.ID}}" | xargs -r sudo docker rm -f || true
# frontend-base 컨테이너도 정리 (이전 이름)
sudo docker ps -a --filter "name=frontend-base" --format "{{.ID}}" | xargs -r sudo docker rm -f || true
# 포트 8000을 사용하는 컨테이너 확인 및 제거
sudo docker ps --filter "publish=8000" --format "{{.ID}}" | xargs -r sudo docker stop || true
sudo docker ps --filter "publish=8000" --format "{{.ID}}" | xargs -r sudo docker rm -f || true
```
**교훈**:
- 폴더명 변경 시 CI/CD 스크립트도 함께 업데이트 필요
- 배포 전 기존 컨테이너 완전 정리로 포트 충돌 방지
- 이전 이름의 컨테이너도 정리하여 혼란 방지
### nginx 설정 적용 및 404 해결
**문제**: `/admin` 경로에서 404 에러 발생
**원인**:
- nginx 설정 파일(`server-nginx-default`)은 수정했으나 실제 적용된 설정(`/etc/nginx/sites-enabled/default`)은 이전 설정 유지
- `root` 방식과 `alias` 방식의 차이로 인한 경로 불일치
**해결**:
1. **설정 파일 동기화**:
```bash
sudo cp /home/admin/nginx-infra/server-nginx-default /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx
```
2. **최종 nginx 설정**:
```nginx
location /admin {
alias /home/admin/admin-dashboard/frontend/;
try_files $uri $uri/ /admin/index.html;
index index.html;
}
```
**검증**:
```bash
curl -I http://localhost/admin/ # HTTP/1.1 200 OK
```
**교훈**:
- 설정 파일 수정 후 반드시 실제 nginx 설정에 적용 필요
- `root` vs `alias` 차이 이해: `root`는 경로를 합치고, `alias`는 경로를 대체
- `try_files`의 fallback 경로도 `alias` 사용 시 `/admin/index.html`로 명시 필요
### 터미널 bash 문제 해결
**문제**: Cursor IDE 터미널에서 명령어 실행 시 오류 발생
**증상**:
- `cd` 명령어 실행 실패
- Git 명령어 실행 시 오류
**해결**:
- **Cursor IDE 재시작**: 터미널 설정이 다시 로드되어 문제 해결됨
- 또는 `Ctrl+Shift+P` → "Developer: Reload Window"
**교훈**:
- IDE 터미널 문제 발생 시 가장 먼저 IDE 재시작 시도
- 재시작으로 해결되지 않으면 shell 경로 확인 (`/bin/bash`)