@@ -67,25 +67,14 @@ services:
6767 - traefik.enable=true
6868 - traefik.docker.network=traefik
6969
70- # --- Traefik Router (Backend /api) ---
71- - traefik.http.routers.jobpt-${ENVIRONMENT}-api.rule=Host(`${APP_HOST}`) && PathPrefix(`/api`)
70+ # 백엔드에 /api 프리픽스가 포함되어 있으므로 stripPrefix 미들웨어 없이 그대로 전달
71+ - traefik.http.routers.jobpt-${ENVIRONMENT}-api.rule=Host(`${APP_HOST}`) && ( PathPrefix(`/api`) || PathPrefix(`/docs`) || PathPrefix(`/redoc`) || PathPrefix(`/health`) || Path(`/openapi.json`) )
7272 - traefik.http.routers.jobpt-${ENVIRONMENT}-api.entrypoints=websecure
7373 - traefik.http.routers.jobpt-${ENVIRONMENT}-api.tls=true
7474 - traefik.http.routers.jobpt-${ENVIRONMENT}-api.tls.certresolver=le
7575 - traefik.http.services.jobpt-${ENVIRONMENT}-api.loadbalancer.server.port=8000
7676
77- # FastAPI Docs router
78- - traefik.http.routers.jobpt-${ENVIRONMENT}-api-docs.rule=Host(`${APP_HOST}`) && (PathPrefix(`/docs`) || PathPrefix(`/redoc`) || PathPrefix(`/openapi.json`))
79- - traefik.http.routers.jobpt-${ENVIRONMENT}-api-docs.entrypoints=websecure
80- - traefik.http.routers.jobpt-${ENVIRONMENT}-api-docs.tls=true
81- - traefik.http.routers.jobpt-${ENVIRONMENT}-api-docs.tls.certresolver=le
82- - traefik.http.routers.jobpt-${ENVIRONMENT}-api-docs.service=jobpt-${ENVIRONMENT}-api
83-
84- # /api prefix 제거 미들웨어 연결
85- - traefik.http.middlewares.jobpt-${ENVIRONMENT}-api-stripprefix.stripprefix.prefixes=/api
86- - traefik.http.routers.jobpt-${ENVIRONMENT}-api.middlewares=jobpt-${ENVIRONMENT}-api-stripprefix
87-
88- # HTTP → HTTPS 리다이렉트 (Backend)
77+ # HTTP → HTTPS 리다이렉트 (backend)
8978 - traefik.http.routers.jobpt-${ENVIRONMENT}-api-http.rule=Host(`${APP_HOST}`) && PathPrefix(`/api`)
9079 - traefik.http.routers.jobpt-${ENVIRONMENT}-api-http.entrypoints=web
9180 - traefik.http.routers.jobpt-${ENVIRONMENT}-api-http.middlewares=redirect-to-https@file
0 commit comments