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

[复制链接] |主动推送
查看24 | 回复0 | 2024-9-11 15:03:50 | 显示全部楼层 |阅读模式
当Nginx被用作WordPress等网络应用的后端服务器时(这些应用通常是基于PHP和MySQL数据库的),很多用户会遇到这样的错误:"Request Entity Too Large"。当用户试图上传一个大于配置的最大上传文件大小的文件时,就会发生这个错误。Nginx配置中对文件上传大小的默认限制是1MB。
通常情况下,WordPress管理员在第一次尝试安装插件时就会遇到这个错误。例如,我试图在我的本地WP设置上安装 "下载管理器 "WordPress插件,它给了我同样的错误提示。
111315fuqf00070q7qgzrk.png
在Nginx中更改上传文件大小限制
在Vim或您选择的任何文本编辑器中打开Nginx配置文件。
$ sudo vim /etc/nginx/nginx.conf
添加指令' client_max_body_size '。该指令定义了客户端请求主体的最大大小。默认情况下,此指令的值为1MB。增大此值将使您能够上载随请求发送的较大文件。
在“ http”块下添加以下行:
client_max_body_size 16M;
111315tycd84fod9zgo94y.png
如果需要的话,你可以设置更大的数字。现在,保存并关闭文件。
用下面的命令重新启动Nginx。
$ sudo systemctl restart nginx
现在你的Nginx设置将允许你上传一个大小为16MB的文件。让我们再次尝试安装插件。
111315ctmm6n715dqhzgzh.png
即使配置了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(即发布请求的最大尺寸)。
111315ecsmmuvajzc8aj5z.png
在上传文件作为发布请求的一部分时,post_maxsize应始终大于upload_file_maxsize。
根据需要更改值。
upload_max_filesize = 16M
post_max_size = 20M
111316mrl0etifld08rtf3.png
保存并退出文件。
重新启动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在配置文件中的限制。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则