《nginx上传文件默认大小》
一、解决方案
Nginx默认的上传文件大小是有限制的,通常是1M。如果需要上传更大的文件,可以通过修改Nginx配置来实现。主要是在Nginx的配置文件中添加或修改相关指令来调整允许上传文件的值。
二、修改Nginx配置文件
- 直接在http块中设置
- 打开Nginx的配置文件,一般位于
/etc/nginx/nginx.conf
(不同系统路径可能有所不同)。可以在http块中添加如下代码:
bash
http {
...
client_max_body_size 10m; # 将上传文件大小设置为10M
...
}
- 这种方式适用于整个Nginx服务下的所有站点都采用这个统一的上传文件大小限制。
- 打开Nginx的配置文件,一般位于
-
在server块中设置
-
如果只想针对某个特定的站点进行设置,在对应站点的server块中添加代码:
```bash
server {
listen 80;
server_name example.com;location / {
root html;
index index.html index.htm;
clientmaxbody_size 50m; # 设置该站点允许上传的文件大小为50M
}
}
```
-
三、其他思路
- 利用fastcgi参数(针对php等应用)
- 当使用Nginx与php - fpm组合时,除了上述方法外,还可以在location中处理php - fpm请求时设置fastcgi参数:
bash
location ~ .php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php - fpm.sock;
fastcgi_param PHP_VALUE "upload_max_filesize = 20M n post_max_size=21M"; # 分别设置php上传文件大小和post数据大小
}
- 当使用Nginx与php - fpm组合时,除了上述方法外,还可以在location中处理php - fpm请求时设置fastcgi参数:
- 检查相关安全模块影响
- 有时候一些安全模块如modsecurity等可能会对上传文件大小有额外的限制。需要查看这些模块的配置,确保它们不会干扰到我们设置的上传文件大小。例如,对于modsecurity,可以在其配置文件中查找类似
SecRequestBodyNoFilesLimit
等相关指令并合理设置,以确保上传大文件时不会被安全规则阻止。修改完配置后,一定要记得重启Nginx服务使配置生效,可以使用sudo systemctl restart nginx
(适用于systemd管理的服务的系统)。
- 有时候一些安全模块如modsecurity等可能会对上传文件大小有额外的限制。需要查看这些模块的配置,确保它们不会干扰到我们设置的上传文件大小。例如,对于modsecurity,可以在其配置文件中查找类似