Fix lỗi Nginx : 413 Request Entity Too Large

Nếu bạn đang sử dụng và gặp lỗi “413 Request Entity Too Large” thì do cấu hình mặc định “client_max_body_size” của Nginx thấp hơn so với nhu cầu của bạn.

client_max_body_size là một chỉ thị của Nginx nhằm giới hạn kích cỡ tối đa của một truy vấn gửi dữ liệu lên của client. Truy vấn thường là khi bạn tạo 1 truy vấn POST để gửi dữ liệu lên Server và nếu dữ liệu POST này có kích cỡ lớn hơn quy định theo chỉ thị này thì Nginx sẽ trả về lỗi 413. Nếu bạn muốn Nginx bỏ qua việc kiểm tra này thì có thể thiết lập “client_max_body_size 0;“, lúc này client có thể gửi truy vấn POST lên Server với độ lớn dữ liệu không giới hạn.

Fix lỗi Nginx : 413 Request Entity Too Large - error nginx PHP - Phát triển website

Lỗi Nginx : 413 Request Entity Too Large

Để sửa lỗi này, bạn mở file “/etc/nginx/nginx.conf” trên VPS của bạn và thêm vào dòng sau “client_max_body_size 20M;” trong block “http {…}“.

Ví dụ :

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user              nginx;
worker_processes  8;

error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    client_max_body_size 20M; #Thêm dòng này để fix lỗi 413 Request Entity Too Large

    # Load config files from the /etc/nginx/conf.d directory
    # The default server is in conf.d/default.conf
    include /etc/nginx/conf.d/*.conf;

}

Nếu 20M (20 Megabytes) vẫn không đủ thì bạn có thể tăng lên theo nhu cầu của bạn. Sau đó bạn save lại file này và khởi động lại Nginx bằng lệnh sau :

service nginx restart

Tuy nhiên, để đồng bộ với giới hạn của thì bạn cũng nên sửa lại các thông số sau trong file cấu hình của PHP (thường chứa trong file “/etc/php.ini“)

  • post_max_size = 20M
  • upload_max_filesize = 20M

Lưu lại và khởi động lại PHP bằng lệnh sau :

Nếu sử dụng LAMP (Apache) thì “service httpd restart

Nếu sử dụng PHP-FPM thì “service php-fpm restart