Skip to content

๐Ÿ› NestJS Nginx Request Data Size ๋ฌธ์ œ

I3KAE edited this page Dec 5, 2024 · 2 revisions

๐Ÿšจย ๋ฌธ์ œ ์ƒํ™ฉ

ํด๋ผ์ด์–ธํŠธ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ „์†ก ํ•  ๋•Œ ์ž‘์€ ์šฉ๋Ÿ‰์˜ ์ด๋ฏธ์ง€๋“ค์€ ๊ทธ๋ƒฅ base64๋กœ ์ธ์ฝ”๋”ฉํ•ด์„œ ์ „์†กํ•˜๊ธฐ๋กœ ๊ณ„ํšํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ HTTP Payload์˜ Body๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ์ธ ๋งŒํผ ์†ก์ˆ˜์‹  ๊ณผ์ •์— ํฐ ๋ฌธ์ œ๊ฐ€ ์—†์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ๋ง‰์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ด๋ณด๋‹ˆ 413 (Request Entity Too Large) ์˜ค๋ฅ˜๋ฅผ ๋งž๋‹ฅ๋œจ๋ฆฌ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿƒย ํ•ด๊ฒฐ ๊ณผ์ •

1. Nginx์˜ ์ „์†ก ๋ฐ์ดํ„ฐ ํฌ๊ธฐ ์ฆ๊ฐ€

์ฒ˜์Œ ์‹œ๋„ํ•œ ๋ฐฉ๋ฒ•์€ Nginx์—์„œ http๋กœ ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ํ‚ค์›Œ์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ์Šต๋‹ˆ๋‹ค.

413 ์—๋Ÿฌ ๊ด€๋ จ ๊ฒ€์ƒ‰์„ ์ง„ํ–‰ํ•˜์˜€์„ ๋•Œ ์ œ์ผ ๋จผ์ € ๋‚˜์™”๋˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด Nginx์˜ ํ—ˆ์šฉ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ํ™•์žฅ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ์Šต๋‹ˆ๋‹ค.

http {
    ...
    client_max_body_size 20m;
    ...
} 

์ด์ฒ˜๋Ÿผ http ์„œ๋น„์Šค๋ฅผ ๊ฐ€์ •ํ•  ๋•Œ client_max_body_size๋ฅผ ์กฐ์ •ํ•ด์คŒ์œผ๋กœ์จ Nginx๋ฅผ ๊ฑฐ์ณ์„œ ์˜ค๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ €ํฌ ์„œ๋น„์Šค์—์„œ๋Š” Nginx๊ฐ€ ์•ž ๋‹จ์—์„œ ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ ์—ญํ• ์„ ํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ์— Nginx Config๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•ด๋ณด์•˜์ง€๋งŒ, ์•„์‰ฝ๊ฒŒ๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

2. NestJS์—์„œ ์ „์†ก ๋ฐ์ดํ„ฐ ํฌ๊ธฐ ์ฆ๊ฐ€

๋‹ค์Œ์œผ๋กœ ์‹œ๋„ํ•œ ๋ฐฉ๋ฒ•์€ NestJS์—์„œ ์ „๋‹ฌ ๋ฐ›๋Š” HTTP Json Payload์˜ ํฌ๊ธฐ๋ฅผ ํ‚ค์šฐ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

main ์‹คํ–‰ ์ฝ”๋“œ์— ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด Http๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ ๋ฐ›๋Š” Payload์˜ Json ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

import { json } from 'body-parser';

app.use(json({ limit: '50mb' }));

๋‹คํ–‰ํžˆ ์œ„์˜ ์ฝ”๋“œ๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

โœ…ย ๋ฌธ์ œ ํ•ด๊ฒฐ

์ฐธ๊ณ ์ž๋ฃŒ

https://www.zerocho.com/category/HTTP/post/6507ad4a457fe081afb2a769

https://codegear.tistory.com/120

LiBoo

ํŒ€

๊ณตํ†ต

๋ฏผ์ง€

์˜๊ธธ

์ค€์„œ

์ง€์ˆ˜

์ฐฝํ˜„

๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ

ํšŒ์˜๋ก

๋ฐœํ‘œ

์ผ๊ธฐ์žฅ

Clone this wiki locally