Cách Fix Lỗi 413 Request Entity Too Large Error Trong NginX
NginX (phát âm endzin-eks) là web server được sử dụng phổ biến đứng thứ 2 sau Apache theo thống kê mới được đưa ra gần đây dựa trên kết quả của một server được thực hiện hồi tháng 6 năm 2017 bởi W3techs.
Nguồn: W3techs
Trong bài viết này chúng ta sẽ tìm hiểu cách khắc phục một lỗi cũng khá phổ biến khi sử dụng NginX, khi gặp lỗi này chúng ta sẽ thấy server trả về thông báo như sau:
413 Request Entity Too Large Error
Nguyên Nhân
Lỗi này xảy ra khi client thực hiện việc tải dữ liệu lên server với kích thước dữ liệu lớn hơn kích thước cho phép bởi NginX.
Ví dụ khi NginX được cài đặt để giới hạn dung lượng tối đa cho phép của dữ liệu gửi lên server là 1M nhưng client lại upload một file với kích thước là 2M.
Cách Khắc Phục
Để khắc phục lỗi trên bạn cần cấu hình lại thông số
client_max_body_size
trong NginX. Thông số này quy định dung lượng tối đa cho phép client có thể sử dụng trong request body gửi tới NginX.
Mở tập tin cấu hình
nginx.conf
sử dụng text editor có trên hệ thống (bài viết này sử dụng Vim tuy nhiên thì bạn có thể dùng editor khác như Nano nếu muốn):$ sudo vi /etc/nginx/nginx.conf
Hoặc:
$ sudo vi /usr/local/nginx/conf/nginx.conf
Tham khảo bài viết làm quen với VIM nếu bạn muốn tìm hiểu về text editor tuyệt vời này.
Tiếp theo thêm vào chỉ thị sau đây cho NginX:
client_max_body_size 2M;
Ở trên thiết lập dung lượng tối đa cho phép trong request body là
2M
. Bạn có thể thay đổi giá trị này thành giá trị thực tế mà bạn muốn. Lưu thay đổi mới tạo ra ở trên rồi sau đó chạy câu lệnh sau đây để tải lại thiết lập cho NginX:$ sudo service nginx reload
Nếu câu lệnh trên báo lỗi hoặc
service
không có trên phiên bản Linux bạn đang dùng thì bạn cần tham chiếu tới địa chỉ tập tin binary của NginX như sau:$ sudo /usr/local/nginx/sbin/nginx -s reload
Hoặc:
$ sudo /sbin/nginx -s reload
Nếu bạn sử dụng PHP để phát triển ứng dụng thì bạn sẽ cần thiết lập thêm các thông số cần thiết để có thể qua được bước validation của PHP. Bạn nên theo dõi phần tiếp theo đây nếu bạn sử dụng PHP để xử lý form data gửi tới server.
Cấu Hình PHP
Mở file cấu hình PHP có tên là
php.ini
và thêm chỉ thị sau:upload_max_filesize = 2M
Và:
post_max_size = 3M
Chỉ thị đầu tiên áp dụng cho form dùng để upload tập tin (binary file). Chỉ thị sau đó áp dụng cho các form gửi theo HTTP method là
POST
.
Lưu file cấu hình PHP ở trên sau đó khởi động lại NginX sử dụng câu lệnh đã được đề cập ở phần trước.
Nhận xét
Đăng nhận xét