虽然这不是针对特定问题的答案,但由于我在遇到非常相似的问题时遇到了这个问题,所以我会在这里发布它,以防有人需要。
我遇到的问题与OP几乎相同(任何大于128mb的上传都会在Chrome中失败),但我在我的UB 16.04服务器上使用Plesk(nginx代理HTTP / 2),因此任何直接更改nginx设置的尝试都会失败,因为Plesk会覆盖它们。
默认情况下,Plesk面板将client_max_body_size 128m;
应用于每个nginx conf文件,尽管默认的nginx设置为1mb。这会导致问题,因为无论您使用PHP设置什么,nginx都会在上传超过约25mb的任何内容时崩溃。我不确定为什么这个数字很重要,也许那是nginx读取下一个数据块的标头的时间?它看到传入的文件超过128mb,然后崩溃并在Chrome中抛出ERR_CONNECTION_CLOSED
错误。我不太确定,我只知道这是一团糟。
在Plesk中有一个选项可以添加nginx指令,据说可以允许您覆盖此设置,但如果您尝试添加任何内容,则会引发“重复条目”错误:
Invalid nginx configuration: nginx: [emerg] "client_max_body_size" directive is duplicate in /var/www/vhosts/system/example.com/conf/vhost_nginx.conf:1 nginx: configuration file /etc/nginx/nginx.conf test failed
我花了很长时间寻找解决方法,最终在 Plesk 支持论坛上找到了this article ,这篇文章完美地解决了问题。
只需通过终端执行几个简单的步骤(所有详细信息都在文章中列出),即可使其正常工作,但以防万一它会消失...
使用ssh连接到服务器。
运行以下命令,以添加“client_max_body_size 128m;”到nginx配置中:
echo 'client_max_body_size 128m;' > /etc/nginx/conf.d/aa_client_max_body.conf
因此,128m将成为全局'server_max_body_size'指令的默认值。可以在此处设置任何其他值。
将以下行添加到/usr/local/psa/admin/conf/panel.ini中:
[webserver]
nginxClientMaxBodySize =
如果 panel.ini 文件不存在,则使用示例文件创建它:
cp /usr/local/psa/admin/conf/panel.ini.sample /usr/local/psa/admin/conf/panel.ini
请确保 /usr/local/psa/admin/conf/panel.ini 文件的权限设置正确,否则解决方案将无法生效:
ls -la /usr/local/psa/admin/conf/panel.ini
-rw-r--r-- 1 root root 1857 Nov 26 11:03 /usr/local/psa/admin/conf/panel.ini
重新生成所有虚拟主机的NGINX\Apache配置文件,以应用/usr/local/psa/admin/conf/panel.ini中的更改:
plesk sbin httpdmng --reconfigure-all
因此,在虚拟主机配置文件中将不会定义“client_max_body_size”指令。
重新启动NGINX:
service nginx restart
现在可以在域名 > example.com > Apache & Nginx 设置 > 每个域名的附加nginx指令 中指定自定义的client_max_body_size值,例如:
client_max_body_size 512m;
这个方案百分之百有效。完全归功于Bulat Tsydenov(该解决方案的作者)。
救了我的一命 :)
withCredentials: true
吗? - Hackerman