diff --git a/deploy/README.md b/deploy/README.md index 686f08ca..ff6b7661 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -46,3 +46,8 @@ ITMS는 단일-jar가 아니라 **4포트 독립 WAR 스택 + 데몬**: ## 보안 불변 - 이 디렉터리 어떤 파일에도 AES 암호문·DB 접속정보·NCP/카카오 키·Gitea 비번·SSH 계정을 **하드코딩 금지**. 자격증명은 env/서버 로컬에서만. - force push 금지. 기존 단일-jar 솔루션 배포에 무영향(deploy_server는 itms 블록만 추가). + +## 접속 도메인 (개발서버) +- **itms.zioinfo.co.kr** (서버 101.79.17.164). 브라우저 진입점 = front(:11020). +- 리버스 프록시: `deploy/nginx/itms.zioinfo.co.kr.conf` 를 `/etc/nginx/sites-available/` 에 배치 → `sites-enabled` 심볼릭 → `nginx -t && systemctl reload nginx`. +- 라이브 조건: ① Tier2 앱 기동(front 등) ② TLS 인증서 발급(certbot -d itms.zioinfo.co.kr). 미충족 시 각각 502 / 인증서 오류. diff --git a/deploy/nginx/itms.zioinfo.co.kr.conf b/deploy/nginx/itms.zioinfo.co.kr.conf new file mode 100644 index 00000000..5d14d339 --- /dev/null +++ b/deploy/nginx/itms.zioinfo.co.kr.conf @@ -0,0 +1,47 @@ +# itms.zioinfo.co.kr — ITMS 리버스 프록시 (적용 대기 템플릿) +# 개발서버 도메인: itms.zioinfo.co.kr → 서버(101.79.17.164, 내부 10.0.1.6) +# +# 선결(라이브 조건): +# 1) Tier2 앱 기동: front(11020) 필수, 필요 시 auth(11000)/api(11010) — 런타임 DB·JDK17·기관 프로파일 확보 환경에서 +# 2) TLS 인증서 발급(itms.zioinfo.co.kr) — 예: certbot --nginx -d itms.zioinfo.co.kr +# ※ 앱 미기동 상태에서 적용하면 502. 인증서 미발급 시 443 블록의 ssl_certificate 경로부터 맞출 것. +# +# 진입점: front(:11020) 가 브라우저 진입점. front 가 auth/api 를 서버측 REST(Unirest)로 경유하므로 +# 일반적으로 front 만 프록시하면 됨. (OAuth 리다이렉트가 브라우저를 auth 로 보내는 구성이면 /oauth 블록 활성화) + +server { + listen 80; + server_name itms.zioinfo.co.kr; + location / { return 301 https://$host$request_uri; } +} + +server { + listen 443 ssl; + server_name itms.zioinfo.co.kr; + + ssl_certificate /etc/letsencrypt/live/itms.zioinfo.co.kr/fullchain.pem; # 발급 후 실제 경로로 + ssl_certificate_key /etc/letsencrypt/live/itms.zioinfo.co.kr/privkey.pem; + + client_max_body_size 50m; + + # 웹 UI (front :11020) — 브라우저 진입점 + location / { + proxy_pass http://127.0.0.1:11020; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_read_timeout 120s; + } + + # (선택) OAuth 인가서버 직접 노출이 필요한 구성일 때만 활성화 + # location /oauth/ { + # proxy_pass http://127.0.0.1:11000; + # proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; + # } + # (선택) API 직접 노출 — front 가 서버측 경유하면 불필요 + # location /api/ { + # proxy_pass http://127.0.0.1:11010; + # proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; + # } +}