如何编辑 nginx.conf 以增加文件大小上传

Posted

技术标签:

【中文标题】如何编辑 nginx.conf 以增加文件大小上传【英文标题】:How to edit nginx.conf to increase file size upload 【发布时间】:2014-12-30 06:32:54 【问题描述】:

我想增加可以上传的maximum file size。 在网上做了一些研究后,我发现你必须编辑文件'nginx.conf'。 我目前可以访问此文件的唯一方法是通过 Putty 并输入命令:

vi /etc/nginx/nginx.conf

这将打开文件,但我现在有 2 个问题:

    如何编辑此文件? 我在网上查到你要添加下面这行代码:

client_max_body_size 8M;

我应该把这行代码放在nginx.conf的什么地方?

【问题讨论】:

【参考方案1】:

添加 client_max_body_size

现在您正在编辑文件,您需要将该行添加到服务器块中,如下所示;

server 
    client_max_body_size 8M;

    //other lines...

如果您托管多个站点,请像这样将其添加到 http 上下文中;

http 
    client_max_body_size 8M;

    //other lines...

同时更新您的 php.ini 文件中的upload_max_filesize,以便您可以上传相同大小的文件。

保存在 Vi 中

完成后需要保存,可以在 vi 中按esc 键并输入:wq 并返回。

重启 Nginx 和 PHP

现在您需要重新启动 nginx 和 php 以重新加载配置。这可以使用以下命令来完成;

sudo service nginx restart
sudo service php5-fpm restart

或者任何你的 php 服务被调用。

【讨论】:

将它添加到http 上下文中可能不是一个坏主意,以便所有服务器都继承它。并确保调整php.ini 中的upload_max_filesize 以匹配您的nginx 设置。如果你使用 Homestead/Vagrant 运行 Laravel,该文件位于 /etc/php5/fpm/php.ini 是的,我忘了提到我正在使用 Laravel Homestead。所以我打开'/etc/php5/fpm/php.ini',发现代码行'upload_max_filesize = 2M',所以我想把它改成'2M'变成'8M'。进行此编辑后,是否只需按“Ctrl Z”退出文件,然后运行“sudo service nging restart”? 退出编辑器,在 vi 命令前加上 sudo。像这样; sudo vi /etc/nginx/nginx.conf 或 sudo vi /etc/php5/fpm/php.ini sudo nginx -s reload 重新加载配置而不重启 nginx php 也需要post_max_size【参考方案2】:

如果使用 nginx 代理作为 docker 容器(例如jwilder/nginx-proxy),可以通过以下方式配置client_max_body_size(或其他属性):

    创建自定义配置文件,例如/etc/nginx/proxy.conf 具有此属性的正确值 运行容器时,将其添加为卷,例如-v /etc/nginx/proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro

个人觉得这种方式相当方便,因为不需要构建自定义容器来更改配置。我不隶属于jwilder/nginx-proxy,只是在我的项目中使用它,上面描述的方式帮助了我。希望它也对其他人有所帮助。

【讨论】:

这个相关项目:github.com/evertramos/…(来自 jwilder 的 nginx-proxy 与来自 let encrypt 的证书生成相结合)有一个简洁的脚本来执行此操作,并且预配置了此选项(到 100M)。从示例中创建 .env;取消注释#USE_NGINX_CONF_FILES=true 行;运行start.sh,最后运行docker-compose up。 (我不隶属于这两个项目)。【参考方案3】:

首先导航php.ini

的路径

sudo vi /etc/php/7.2/fpm/php.ini

然后,下一个变化

upload_max_filesize = 999M
post_max_size = 999M

然后ESC-->:wq

现在最后粘贴这个命令,

sudo systemctl restart php7.2-fpm.service

你已经完成了。

【讨论】:

这个问题是关于 nginx web 服务器,而不是 PHP 编程语言 这对我有用@Rafik Farhad。它也可能对其他人有所帮助。我知道这是一个 nginx 配置问题。但在某些情况下,可能还需要添加一些其他功能。所以我在这里做了。谢谢。【参考方案4】:

您可以整天增加 client_max_body_size 和 upload_max_filesize + post_max_size。如果不调整 HTTP 超时,它将永远无法工作。

//你需要调整这个,可能在 PHP 端也可以。 client_body_timeout 2min // 1GB 文件上传

【讨论】:

更多关于在这里调整你的网络服务器的信息:doc.owncloud.com/server/admin_manual/configuration/files/…

以上是关于如何编辑 nginx.conf 以增加文件大小上传的主要内容,如果未能解决你的问题,请参考以下文章

nginx如何设置最大上传文件大小

LNMP环境修改上传文件大小

编辑我的 php.ini,但 phpmyadmin 仍然不会增加文件大小上传

nginx上传文件超出默认大小限制-附件,提示:413 Request Entity Too Large

nginx修改上传文件大小限制(413 Request Entity Too Large)

如何使用 .htaccess 或 php.ini 增加上传文件大小限制? [复制]