server { listen 80; server_name _; client_max_body_size 50M; # ===== Gateway 자체 페이지 (포털, 로그인) ===== root /usr/share/nginx/html; # 로그인 페이지 location = /login { try_files /login.html =404; } # 공유 JS/CSS (nav-header 등) location /shared/ { alias /usr/share/nginx/html/shared/; } # ===== SSO Auth API ===== location /auth/ { proxy_pass http://sso-auth:3000/api/auth/; 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; } # ===== System 1 API 프록시 ===== location /api/ { proxy_pass http://system1-api:3005/api/; proxy_http_version 1.1; 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; } # ===== System 1 업로드 파일 ===== location /uploads/ { proxy_pass http://system1-api:3005/uploads/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } # ===== System 1 FastAPI Bridge ===== location /fastapi/ { proxy_pass http://system1-fastapi:8000/; proxy_http_version 1.1; 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; } # ===== System 1 Web (나머지 모든 경로) ===== location / { proxy_pass http://system1-web:80; 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; } # ===== Health Check ===== location /health { return 200 '{"status":"ok","service":"gateway"}'; add_header Content-Type application/json; } }