帮助中心

立即注册 咨询客服

当前位置:首页 > 帮助中心 > 如何在NGINX上限制文件上传大小,缓解DoS攻击

如何在NGINX上限制文件上传大小,缓解DoS攻击

发布时间:2020/8/8 8:31:03    来源: A5互联

NGINX为文件上传设置了1MB的限制。对于一些平台来说,这可能太小了,特别是对于那些允许用户上传图片和视频等项目的网站。然而,如果你把上传值设的太大,你就会面临拒绝服务(DoSS)攻击的风险。你肯定不希望这样。

但是,当你需要允许用户上传超过1M的文件到你的NGINX站点时,你能做什么呢?你可以用client_max_body_size指令来控制它。

为了实现这个目标,你需要安装NGINX并配置好运行你的网站。你还需要一个有sudo权限的用户。我将在Ubuntu服务器18.04上进行演示,但这个过程应该可以在任何支持NGINX的平台上运行。

如何配置nginx.conf

我们要做的第一件事是将nginx.conf文件中的上传限制更改为100MB。使用以下命令打开文件:

sudo nano /etc/nginx/nginx.conf

查找http部分,并添加以下行(如下图):

client_max_body_size 100M;

保存并关闭文件。

将配置添加到NGINX配置文件。

接下来,打开您网站的配置文件。如果使用默认值,则可以使用以下命令打开该文件:

sudo nano /etc/nginx/sites-available/default

在该文件中,查找服务器部分,并添加与nginx.conf文件中相同的行(如下图)。

在站点配置文件的服务器部分中添加配置行。

在同一文件中,找到为网站上传配置的位置部分,并添加同一行(如下图)。

在locations指令中添加配置行。

当然,您的uploads指令可能会比我已经说明的基本指令复杂一些,但是您明白了。

保存并关闭文件。

使用以下命令运行NGINX配置测试:

sudo nginx -t

您应该不会看到任何错误。使用以下命令重新启动NGINX:

sudo systemctl restart nginx

此时,如果有人试图上传大于100MB的文件,他们将413错误(请求实体太大)提示。现在,您的NGINX服务器在允许用户上传文件的同时,也对DoS攻击有了一丝安全感。当然,这并不是预防DoS攻击的万能措施,针对大量DDOS攻击建议使用专业的硬件防火墙。