본문 바로가기

WEB/Nginx

[Nginx]파일업로드 크기 제한 - client_max_body_size

Nginx에서 대용량 파일 업로드 설정하기

웹 서비스를 운영하다 보면 사용자가 큰 파일을 업로드해야 하는 경우가 발생합니다. 기본적으로 웹 서버는 보안 및 리소스 사용량을 고려하여 업로드 가능한 파일 크기에 제한을 두곤 합니다. 그러나 이 제한을 넘어서는 큰 파일을 업로드하게 될 경우에는 서버의 설정을 변경해 주어야 합니다.

Nginx에서는 client_max_body_size 옵션을 통해 요청 본문의 최대 크기를 설정할 수 있습니다. 이 옵션은 클라이언트가 서버로 전송할 수 있는 최대 데이터 크기를 지정하는데 사용됩니다.

1. 전체적인 설정 변경하기 (nginx.conf)

http 블록 안에서 설정하면, 모든 서버와 위치에 대한 기본값으로 설정됩니다.

http {
    ...
    client_max_body_size 2000M;  # 여기서 2000M는 2GB를 의미합니다. 원하는 크기로 조정 가능합니다.
    ...
}

2. 특정 서버 설정 변경하기

특정 서버 블록에서만 이 설정을 적용하고 싶다면 server 블록 내에서 설정합니다.

server {
    ...
    client_max_body_size 2000M;  # 이 서버 블록 내에서만 2GB로 제한합니다.
    ...
}

3. 특정 위치 설정 변경하기

만약 특정 경로 (예: /uploads) 에서만 이 크기 제한을 변경하고 싶다면 location 블록 내에서 설정할 수 있습니다.

location /uploads {
    ...
    client_max_body_size 2000M;  # /uploads 경로에서의 요청만 2GB로 제한합니다.
    ...
}

변경 사항 적용하기

설정 변경 후에는 Nginx 서버를 재시작하거나 리로드하여 변경 사항을 적용해야 합니다.

sudo nginx -s reload