Skip to content

Commit 06b9c2f

Browse files
authored
Merge pull request #157 from Pseudo-Lab/fix/backend-traefik-routing
fix: correct backend API routing and remove conflicting stripPrefix
2 parents e35cbbe + c42d1a1 commit 06b9c2f

File tree

2 files changed

+3
-21
lines changed

2 files changed

+3
-21
lines changed

backend/main.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,10 @@
4444
remote_cache = ""
4545
job_type_cache = ""
4646

47-
env = os.getenv("ENVIRONMENT", "development").lower()
48-
49-
is_prod = env == "production"
50-
5147
app = FastAPI(
5248
title="JobPT",
5349
description="JobPT Backend Service",
5450
version="1.0.0",
55-
docs_url=None if is_prod else "/api/docs",
56-
redoc_url=None if is_prod else "/api/redoc",
57-
openapi_url=None if is_prod else "/api/openapi.json",
5851
)
5952

6053
# # Middleware to strip /api prefix for local development

docker-compose.yml

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)