- lps-admin 컨테이너화: Vite 정적 빌드 → nginx, /v1·/healthz·/readyz 를 lps-api:9600 으로 동일출처 프록시(빌드 타임 API URL 주입 불필요) - lps-api/worker: APP_ENV=local 고정 + DB_HOST override(도메인 backend·negodata·agent 와 동일 패턴), config.<env>.toml 마운트 방식 폐기 - server_configs 에 DB 접속 env override(_apply_db_env_override) 복원 - config.dev/prod.toml.example 제거 — 환경 구분 없이 config.local.toml 하나 (prod 서버도 그 서버의 config.local.toml + docker compose up -d) - run_docker.sh 환경 선택 제거·lps-admin 포함, README·operations 문서 갱신 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
52 lines
1.8 KiB
Nginx Configuration File
52 lines
1.8 KiB
Nginx Configuration File
# LPS 관리자 UI — 정적 SPA 서빙 + LPS API 동일출처 프록시.
|
|
# 브라우저는 이 오리진(:3400)만 보고, /v1·/healthz·/readyz 는 여기서 lps-api:9600 으로 넘긴다.
|
|
# (vite dev 서버의 proxy 설정과 동일한 대상·경로 — 개발/운영 동작 일치)
|
|
server {
|
|
listen 80;
|
|
server_name _;
|
|
|
|
root /usr/share/nginx/html;
|
|
index index.html;
|
|
|
|
# gzip — 번들·JSON 응답 전송량 절감
|
|
gzip on;
|
|
gzip_types text/css application/javascript application/json image/svg+xml;
|
|
gzip_min_length 1024;
|
|
|
|
# ── API 프록시 (lps-api:9600) ──
|
|
# 도커 임베디드 DNS(127.0.0.11)로 매 요청 재해석 → lps-api 재시작(새 IP)에도 502 없이 따라간다.
|
|
# proxy_pass 에 경로를 두지 않아 원본 요청 URI 를 그대로 전달한다(/v1/lps/ops → 동일 경로).
|
|
resolver 127.0.0.11 valid=30s ipv6=off;
|
|
|
|
location /v1/ {
|
|
set $lps_api http://lps-api:9600;
|
|
proxy_pass $lps_api;
|
|
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; # 테스트 검색 등 긴 폴링 여유
|
|
}
|
|
|
|
location = /healthz {
|
|
set $lps_api http://lps-api:9600;
|
|
proxy_pass $lps_api;
|
|
}
|
|
|
|
location = /readyz {
|
|
set $lps_api http://lps-api:9600;
|
|
proxy_pass $lps_api;
|
|
}
|
|
|
|
# ── SPA 라우팅 — 정적 파일 없으면 index.html 로 폴백 ──
|
|
location / {
|
|
try_files $uri $uri/ /index.html;
|
|
}
|
|
|
|
# 정적 자산 캐시(해시 파일명이라 장기 캐시 안전). index.html 은 캐시 안 함.
|
|
location /assets/ {
|
|
expires 1y;
|
|
add_header Cache-Control "public, immutable";
|
|
}
|
|
}
|