From d85b47fa0874dce6034d2645efb9bfed6cc76421 Mon Sep 17 00:00:00 2001 From: itms-merge-dev Date: Fri, 17 Jul 2026 23:24:36 +0900 Subject: [PATCH] =?UTF-8?q?ci(itms):=20=EA=B0=9C=EB=B0=9C=EC=84=9C?= =?UTF-8?q?=EB=B2=84=20=EB=8F=84=EB=A9=94=EC=9D=B8(itms.zioinfo.co.kr)=20?= =?UTF-8?q?=EB=A6=AC=EB=B2=84=EC=8A=A4=20=ED=94=84=EB=A1=9D=EC=8B=9C=20vho?= =?UTF-8?q?st=20=EC=B6=94=EA=B0=80=20(=EC=A0=81=EC=9A=A9=20=EB=8C=80?= =?UTF-8?q?=EA=B8=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 실측: itms.zioinfo.co.kr DNS→서버(101.79.17.164) 해석되나 nginx itms vhost 부재·앱 미기동(11020 등)·https 미구성. - deploy/nginx/itms.zioinfo.co.kr.conf: front(:11020) 진입점 리버스 프록시(80→443 리다이렉트, TLS·auth/api 선택 블록). 라이브 조건 명시: Tier2 앱 기동 + TLS 인증서 발급(certbot). 미충족 시 502/인증서 오류. - README: 접속 도메인·nginx 적용 절차 섹션 추가. 기존 vhost(zioinfo/app/jenkins) 무영향(신규 vhost만). 서버 미적용(산출물 준비형). Co-Authored-By: Claude Fable 5 --- deploy/README.md | 5 +++ deploy/nginx/itms.zioinfo.co.kr.conf | 47 ++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 deploy/nginx/itms.zioinfo.co.kr.conf 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; + # } +}