Linux 技术手札

解决 Nginx 错误: 413 Request entity too large

在 Nginx 下如果用 PHP 上传档案时, 有时会出现以下报错:

Nginx 413 Request Entity Too Large

出现 Error 413 的原因是访客浏览网页时, 传送过多的 HTTP 请求, 一般在上传档案时出现, 解决方法是修改 Nginx 的 上传限制, 这个可以透过 Nginx 的 client_max_body_size 设定。

client_max_body_size 是用作设定访客最多可以传送多少资料, 如果访客传送到 Nginx 的资料超过这个限制, 便会出现 413 Request Entity Too Large 错误, 而这个参数的默认值是 1MB。要修改首先开启 Nginx 的设定档 nginx.conf:

# vi /etc/nginx/nginx.conf

或者

# vi /usr/local/nginx/conf/nginx.conf

可以在 http, server 或 location 其中一个 block 加入 client_max_body_size 设定, 例如我想改为 20MB:

储存盘案后离开文字编辑器, 然后重新启动 Nginx:

# service nginx reload

或者

# /usr/local/nginx/sbin/nginx -s reload

或者

# /sbin/nginx -s reload

如果出现上面问题的地方, 是 PHP 上载档案的部份, 需要连同 PHP 的上载限制一同修改, 开启 php.ini 档案:

找到 upload_max_filesize, 设定为 20MB:

upload_max_filesize = 20M

找到 post_max_size, 设定为 30MB:

post_max_size = 30M

储存盘案并离开文字编辑器, 然后重新启动 Nginx 便可以了。

Exit mobile version