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


106

我想增加maximum file size可以上传的。
在网上进行了一些研究之后,我发现您必须编辑文件“ nginx.conf”。
我当前可以访问此文件的唯一方法是通过Putty并键入以下命令:

vi /etc/nginx/nginx.conf

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

  1. 如何编辑该文件?
  2. 我在网上发现您必须添加以下代码行:

client_max_body_size 8M;

我将把这行代码放在nginx.conf哪里?

Answers:


200

添加client_max_body_size

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

server {
    client_max_body_size 8M;

    //other lines...
}

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

http {
    client_max_body_size 8M;

    //other lines...
}

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

在Vi中保存

完成后,您需要保存,可以在vi中通过esc按键并键入:wq和返回来完成。

重新启动Nginx和PHP

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

sudo service nginx restart
sudo service php5-fpm restart

或任何您的PHP服务被称为。


8
将其添加到http {上下文中以便所有服务器都继承它可能不是一个坏主意。并确保您调整upload_max_filesizephp.ini,以配合您的nginx设置。如果您使用Homestead / Vagrant运行Laravel,则该文件位于/etc/php5/fpm/php.ini
damiani 2014年

是的,我忘了提到我正在使用Laravel Homestead。因此,我打开了“ /etc/php5/fpm/php.ini”,找到了代码行“ upload_max_filesize = 2M”,因此我想对其进行更改,以使“ 2M”变为“ 8M”。进行此编辑后,是否只需按“ Ctrl Z”退出文件,然后运行“ sudo service nging restart”?
Jeff P.

您没有按ctrl-z您需要用vi保存它,按esc,然后键入:wq并按Enter。
马特·伯罗

2
从编辑器中出来,在vi命令前加上sudo。像这样 sudo vi /etc/nginx/nginx.conf或sudo vi /etc/php5/fpm/php.ini
Matt Burrow

2
sudo nginx -s reload重新加载配置而不重新启动nginx
Vincnetas

12

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

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

亲自发现这种方式相当方便,因为无需构建自定义容器即可更改配置。我不隶属于jwilder/nginx-proxy,只是在我的项目中使用它,而上述方法对我有所帮助。希望它也能帮助其他人。


1
这个相关的项目:github.com/evertramos/…jwilder的nginx-proxy和let加密生成的证书相结合)有一个简洁的脚本可以做到这一点,并且该选项已预配置(最大100M)。从示例创建.env;取消注释#USE_NGINX_CONF_FILES=true; 跑到start.sh最后docker-compose up。(我不隶属于任何一个项目)。
glaux

3

首先浏览php.ini的路径

须藤vi /etc/php/7.2/fpm/php.ini

然后,下一个变化

upload_max_filesize = 999M
post_max_size = 999M

然后 ESC-->:wq

现在最后粘贴此命令,

sudo systemctl重新启动php7.2-fpm.service

你完成了。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.