docs: nginx 404 해결 및 bash 문제 해결 내용 추가
This commit is contained in:
parent
50e9ad884c
commit
962d85d99c
@ -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`)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user