ci(itms): 개발서버 도메인(itms.zioinfo.co.kr) 리버스 프록시 vhost 추가 (적용 대기)

실측: 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 <noreply@anthropic.com>
This commit is contained in:
itms-merge-dev 2026-07-17 23:24:36 +09:00
parent 8adec35979
commit d85b47fa08
2 changed files with 52 additions and 0 deletions

View File

@ -46,3 +46,8 @@ ITMS는 단일-jar가 아니라 **4포트 독립 WAR 스택 + 데몬**:
## 보안 불변 ## 보안 불변
- 이 디렉터리 어떤 파일에도 AES 암호문·DB 접속정보·NCP/카카오 키·Gitea 비번·SSH 계정을 **하드코딩 금지**. 자격증명은 env/서버 로컬에서만. - 이 디렉터리 어떤 파일에도 AES 암호문·DB 접속정보·NCP/카카오 키·Gitea 비번·SSH 계정을 **하드코딩 금지**. 자격증명은 env/서버 로컬에서만.
- force push 금지. 기존 단일-jar 솔루션 배포에 무영향(deploy_server는 itms 블록만 추가). - 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 / 인증서 오류.

View File

@ -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;
# }
}