nginx-infra/README.md
happybell80 7102f9b15d feat: 서버 nginx 직접 설정 배포로 변경
- Docker nginx 대신 서버 nginx 설정 직접 적용
- sudo NOPASSWD 특정 명령어만 허용하여 보안 유지
- nginx -t 및 systemctl reload 자동화
- README.md 배포 플로우 업데이트

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-09 18:19:19 +09:00

73 lines
1.7 KiB
Markdown

# Nginx Deploy - Robeing Project
Ubuntu 서버용 Nginx 리버스 프록시 배포 저장소입니다.
## 구조
```
nginx-deploy/
├── .github/workflows/deploy.yml # GitHub Actions 배포 스크립트
├── default.conf # Nginx 설정 파일
├── docker-compose.yml # Docker Compose 정의
└── README.md # 이 파일
```
## 배포 플로우
1. **main 브랜치에 push**
2. **GitHub Actions** 자동 실행
3. **파일 전송** (Ubuntu 서버 ~/robeing-nginx)
4. **nginx 설정 적용** (서버 nginx 자동 reload)
## 서버 설정
### GitHub Secrets 설정
```
NAS_HOST: 124.55.18.179
NAS_PORT: 51123
NAS_USER: admin
NAS_SSH_KEY_ADMIN: SSH 개인키
```
### 서버 요구사항
- Ubuntu 22.04 LTS
- Nginx 설치 및 SSL 설정 완료
- admin 사용자 특정 명령어 sudo 권한 (NOPASSWD)
- 포트 80, 443 오픈
## 프록시 라우팅
- `https://ro-being.com/` → 192.168.219.45:5173 (메인 프론트엔드)
- `https://ro-being.com/api/` → 192.168.219.45:18000 (frontend/backend)
- `https://ro-being.com/rb8001/` → 192.168.219.45:8001 (api_base)
## SSL 설정
서버 자체에 SSL 설정 완료:
- Ubuntu 서버에서 certbot으로 SSL 인증서 관리
- Docker 컨테이너는 8080 포트에서 HTTP만 처리
- 서버 nginx가 HTTPS → HTTP(8080) 프록시
## 로컬 테스트
```bash
# 서버에서 직접 실행
cd ~/robeing-nginx
docker compose up -d
# 로그 확인
docker compose logs -f nginx
# 내부 서비스 확인
curl http://localhost:8080
```
## 배포 상태 확인
```bash
# 서비스 상태 확인
curl -I https://ro-being.com
# 컨테이너 상태 확인
docker compose ps
```