اگر در حین upload فایل در سایت خود که از nginx به عنوان webserver استفاده میکند با error 413 (یا 413 Request Entity Too Large) مواجه شدید حتما مقاله زیر را بخوانید.
3276

چه زمانی این error رخ میدهد؟
این error زمانی رخ میدهد که هر کدام از اپلیکیشن های شما تلاش میکند اطلاعات بیشتر از آنچه که در nginx و php محدود شده را به سرور آپلود کنند.

نحوه رفع مشکل
این مشکل را میتوان با افزایش سایز memory limit درتنظیمات nginx و php رفع کرد.

1 - تغییر فایل کانفیگ nginx
به منظور رفع این مشکل ما باید فایل nginx.conf که در مسیر زیر قرار دارد ویرایش کنیم.
کد PHP:
# sudo nano /etc/nginx/nginx.conf 
متغییر client_max_body_size را جستجو کنید اگر آن را پیدا کردید تنها کافیست که سایز آن را به طور مثال به 100M تغییر دهید. اگر متغییر موجود نبود شما میتوانید آن را درون فایل و در پایان بلاک http { … } اضافه کنید.
کد PHP:
client_max_body_size 100M
برای مثال :
کد PHP:
http {
    include       
mime.types;
    
default_type  application/octet-stream;
    
sendfile        on;
    
keepalive_timeout  65;

    
server {
        
client_max_body_size 100M;
        
listen       80;
        
server_name  localhost;

        
# Main location
        
location / {
            
proxy_pass         http://127.0.0.1:8000/;
        
}
    }

و برای اعمال تغییرات سرویس nginx را restart کنید.
کد PHP:
# sudo service nginx restart 

2 - تغییر فایل php.ini برای محدودیت upload
در مورد همه موارد این قسمت مورد نیاز نیست اما شما ممکن است نیاز داشته باشید که تنظیمات آپلود php را نیز تغییر دهید تا مطمئن شوید که هیچ چیزی توسط تنظیمات php محدود نمیشود.

در اینجا ما نیاز داریم که فایل php.ini را ویرایش کنیم.

نکته : از آنجایی که در سرتاسر جهان 2 ورژن از php مورد استفاده قرار میگیرند (php5-fpm و php7.0-fpm) من هر دو کامند را برای شما قرار میدهم شما یکی از آنها با توجه به ورژن php خود استفاده کنید.

اگر از php5-fpm استفاده میکنید دستور زیر را اجرا کنید.
کد PHP:
# sudo nano /etc/php5/fpm/php.ini 
اگر از php7.0-fpm استفاده میکنید دستور زیر را اجرا کنید.
کد PHP:
# sudo nano /etc/php/7.0/fpm/php.ini 
اکنون directive های زیر را پیدا کنید :
کد PHP:
upload_max_filesize
post_max_size 
و محدودیت در سایز برای هر کدام از آنها برابر با 100M قرار دهید. (به صورت پیش فرض آنها برابر با 8M و 2M هستند.
کد PHP:
upload_max_filesize 100M
post_max_size 
100M 
نهایتا بعد از ذخیره فایل سرویس php را restart میکنید :
کد PHP:
# sudo service php5-fpm restart 
کاربران php7.0-fpm دستور زیر را استفاده کنند :
کد PHP:
# sudo service php7.0-fpm restart 
شما میتوانید هر گونه محدودیتی را در فایل php و nginx قرار دهید در اینجا ما محدودیت 100M را قرار دادیم که به معنای 100 مگابایت میباشد که از آن چیزی که ما نیاز داریم هم بیشتر است.