Hello! 欢迎来到小浪云!


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


avatar
小浪云 2024-07-01 42


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

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

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

nginx中更改上传文件大小限制

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

$ sudo vim /etc/nginx/nginx.conf

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

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

client_max_body_size 16M;

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

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

用下面的命令重新启动nginx

$ sudo systemctl restart nginx

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

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

即使配置了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(即发布请求的最大尺寸)。

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

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

根据需要更改值。

upload_max_filesize = 16M

post_max_size = 20M

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

保存并退出文件。

重新启动php以及nginx,以进行新配置:

$ sudo systemctl restart php7.4-fpm

$ sudo systemctl restart nginx

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

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

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

相关阅读