From 2a854073f724ca191aa41760e4332587cc38737b Mon Sep 17 00:00:00 2001 From: ttipo Date: Tue, 27 Oct 2026 07:49:40 +0900 Subject: [PATCH] =?UTF-8?q?feat(docker):=20=EB=A9=94=EC=9D=BC=20=EB=B0=9C?= =?UTF-8?q?=EC=86=A1=20=EC=9A=94=EC=B2=AD=EB=A7=8C=20nginx=20=EB=B3=B8?= =?UTF-8?q?=EB=AC=B8=20=ED=95=9C=EB=8F=84=204MB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 서식 본문과 긴 인용으로 발송 JSON 이 1MB 를 넘을 수 있다. 백엔드 파서와 같은 값으로 `location = /api/messages` 만 4m·90s 로 둔다 — 정확히 이 경로만이라 /api/messages/{id} 는 1m 그대로다. Co-Authored-By: Claude Opus 5.5 --- frontend/nginx.conf | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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 로 사전에서 찾는다, 레지스트리와 겹치지 않게).