🚫 Fix lỗi 413 Request Entity Too Large khi upload file với NginX
❗ Vấn đề
Khi người dùng upload file lớn qua form (HTML, API…), NginX có thể trả về lỗi:
1
413 Request Entity Too Large
Đây là lỗi phổ biến do giới hạn dung lượng file mặc định mà NginX cho phép trong request. Mặc định, giới hạn là 1MB.
🛠 Cách khắc phục lỗi 413 trong NginX
🔧 Bước 1: Thêm hoặc chỉnh lại client_max_body_size
Mở file cấu hình NginX:
1
sudo nano /etc/nginx/nginx.conf
Thêm hoặc sửa dòng sau trong block http {}
, server {}
hoặc location {}
:
1
2
3
4
http {
...
client_max_body_size 50M;
}
Hoặc nếu bạn chỉ muốn áp dụng cho 1 server/domain cụ thể:
1
2
3
4
5
6
7
8
9
10
server {
listen 80;
server_name example.com;
client_max_body_size 50M;
location / {
try_files $uri $uri/ =404;
}
}
📂 Nếu bạn dùng cấu hình riêng trong conf.d/
, sites-available/
Thêm client_max_body_size
vào đúng block server {}
hoặc location {}
bạn đang cấu hình.
🔁 Bước 2: Kiểm tra và restart lại NginX
1
2
sudo nginx -t # Kiểm tra cấu hình
sudo systemctl reload nginx # Reload NginX không gián đoạn
Nếu bạn muốn chắc chắn, có thể restart hẳn:
1
sudo systemctl restart nginx
✅ Kiểm tra lại
- Upload lại file từ frontend hoặc Postman
- Kiểm tra trình duyệt/log nếu lỗi vẫn còn
- Nếu phía backend (PHP, Node, v.v.) có giới hạn upload riêng → kiểm tra thêm config backend
🧠 Một số lưu ý bổ sung
- Nếu dùng NginX làm reverse proxy, hãy đặt
client_max_body_size
trong block proxy:1 2 3 4
location /api/ { client_max_body_size 100M; proxy_pass http://localhost:3000; }
- Nếu dùng PHP, kiểm tra thêm file
php.ini
:1 2
upload_max_filesize = 50M post_max_size = 50M
🔗 Tham khảo
✅ Tổng kết
Vấn đề | Nguyên nhân | Cách xử lý |
---|---|---|
413 Request Entity Too Large | File vượt quá giới hạn mặc định | Sửa client_max_body_size trong NginX |
🚀 Sau khi chỉnh client_max_body_size
, bạn có thể upload file lớn hơn mà không gặp lỗi 413 nữa!
Bài viết này được cấp phép bởi tác giả theo giấy phép CC BY 4.0 .