关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

修复Nginx服务器413错误上传文件过大限制问题

发布时间:2023/11/10 17:40:59
香港云服务器

当Nginx被用作WordPress等网络应用的后端服务器时(这些应用通常是基于PHP和MySQL数据库的),很多用户会遇到这样的错误:"Request Entity Too Large"。当用户试图上传一个大于配置的最大上传文件大小的文件时,就会发生这个错误。Nginx配置中对文件上传大小的默认限制是1MB。

通常情况下,WordPress管理员在第一次尝试安装插件时就会遇到这个错误。例如,我试图在我的本地WP设置上安装 "下载管理器 "WordPress插件,它给了我同样的错误提示。

在Nginx中更改上传文件大小限制

在Vim或您选择的任何文本编辑器中打开Nginx配置文件。

$ sudo vim /etc/nginx/nginx.conf

添加指令' client_max_body_size '。该指令定义了客户端请求主体的最大大小。默认情况下,此指令的值为1MB。增大此值将使您能够上载随请求发送的较大文件。

在“ http”块下添加以下行:

client_max_body_size 16M;

如果需要的话,你可以设置更大的数字。现在,保存并关闭文件。

用下面的命令重新启动Nginx。

$ sudo systemctl restart nginx

现在你的Nginx设置将允许你上传一个大小为16MB的文件。让我们再次尝试安装插件。

即使配置了Nginx文件大小后,PHP文件的上传限制仍然阻止上传。让我们看看如何更改它。

更改PHP上传大小限制

Nginx与基于PHP的Web应用程序结合使用,并且由于PHP文件上传大小的限制,可能会出现上述问题。

打开PHP配置目录中的文件“ php.ini ”。

$ sudo vim /etc/php/7.4/fpm/php.ini

或者

$ sudo vim /etc/php.ini

转到变量upload_file_maxsize(即允许上传的文件的最大大小),以及post_maxsize(即发布请求的最大尺寸)。

在上传文件作为发布请求的一部分时,post_maxsize应始终大于upload_file_maxsize。

根据需要更改值。

upload_max_filesize = 16M

post_max_size = 20M

保存并退出文件。

重新启动PHP以及Nginx,以进行新配置:

$ sudo systemctl restart php7.4-fpm

$ sudo systemctl restart nginx

您应该将上述命令中的php7.4替换为您的PHP版本,或者,如果您的服务器中的PHP服务名称就是php,那就替换为“php ”。

现在允许新指定的文件大小在Web应用程序中上传文件,并且插件成功进行安装。

我们已经看到了如何处理基于Nginx的Web应用程序中请求实体太大的问题。请注意,不仅是PHP,而且如果其他CGI与Nginx一起使用,也会出现此问题。在这种情况下,用户可以增加特定CGI在配置文件中的限制。