diff --git a/frontend/nginx.conf b/frontend/nginx.conf index 6167b7d..8b7bcf6 100644 --- a/frontend/nginx.conf +++ b/frontend/nginx.conf @@ -21,7 +21,7 @@ server { access_log /var/log/nginx/access.log main_rid; - # 기본 요청 본문 한도 — 백엔드 JSON 파서 한도(1mb)와 같다. 업로드 경로만 아래 /api 에서 늘린다 + # 기본 요청 본문 한도 — 백엔드 JSON 파서 한도(1mb)와 같다. 업로드·발송 경로만 아래 /api 에서 늘린다 client_max_body_size 1m; # ---------------------------------------- @@ -162,11 +162,20 @@ server { proxy_pass $backend_upstream; } - # 메일 발송·조회·첨부 내려받기 — 메일 엔진 응답을 기다리는 시간 + # 메일 조회·수정·첨부 내려받기 — 메일 엔진 응답을 기다리는 시간 (본문 한도는 기본 1m) location ^~ /api/messages { proxy_read_timeout 90s; proxy_pass $backend_upstream; } + + # 메일 발송(POST /api/messages)만 JSON 본문 4MB — 서식 본문·긴 인용 때문 (계약 2절 413 표, 백엔드도 이 경로만 4MB 파서). + # 계약이 정한 고정값이라 env 로 바꾸지 않는다 (나머지 /api 의 1m 도 백엔드 JSON_BODY_LIMIT 고정값과 같다 — 값이 같아 여유를 두지 않는다). + # 정확히 이 경로만 — /api/messages/{id}(PATCH·DELETE·첨부 내려받기)는 위 location 의 1m 그대로다. 같은 경로의 GET(목록)은 본문이 없다. + location = /api/messages { + client_max_body_size 4m; + proxy_read_timeout 90s; + proxy_pass $backend_upstream; + } } # /api 의 nginx 오류 응답 — message 는 비운다 (문구는 클라이언트가 code 로 사전에서 찾는다, 레지스트리와 겹치지 않게).