如何编辑 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 以增加文件大小上传的主要内容,如果未能解决你的问题,请参考以下文章
编辑我的 php.ini,但 phpmyadmin 仍然不会增加文件大小上传
nginx上传文件超出默认大小限制-附件,提示:413 Request Entity Too Large