如何限制 NGINX 文件上传大小以缓解 DoS 攻击
Andrew2020-08-11 16:55:16
NGINX开箱即用,将文件上传限制为1MB。对于某些平台,这可能太小了,尤其是对于允许用户上传图像和视频等项目的网站而言。但是,如果将上传值设置的太大,则可能会面临拒绝服务(DoS)攻击的风险。
但是,当您需要允许用户向您的Nginx站点上传超过1MB的内容时,您可以做些什么呢?您可以使用client_max_body_size指令来控制它。
你需要什么
为了完成这项工作,您需要安装并配置NGINX才能运行您的网站。您还需要一个具有sudo特权的用户。我将在Ubuntu Server 18.04上进行演示,但是此过程应在支持NGINX的任何平台上都可以工作。准备好这些后,让我们进行配置。
如何配置nginx.conf
我们要做的第一件事是将nginx.conf文件中的上传限制更改为100MB。使用以下命令打开文件:
sudo nano /etc/nginx/nginx.conf
查找http部分,并添加以下行(图A):
client_max_body_size 100M;
保存并关闭文件。
图A
[
将配置添加到NGINX配置文件中。
接下来,打开您网站的配置文件。如果使用默认值,则可以使用以下命令打开该文件:
sudo nano /etc/nginx/sites-available/default
在该文件中,查找服务器部分,并添加与nginx.conf文件中相同的行(图B)。
图B
[
在站点配置文件的服务器部分中添加配置行。
在同一文件中,找到为网站上传配置的位置部分,并添加同一行(图C)。
图C
[
在locations指令中添加配置行。
您的Uploads指令可能会比我所说明的基本指令稍微复杂一些。
保存并关闭文件。
使用以下命令运行NGINX配置测试:
sudo nginx -t
您应该不会看到任何错误。使用以下命令重新启动NGINX:
sudo systemctl restart nginx
此时,如果任何人尝试上传大于100 MB的文件,他们将收到413错误(请求实体太大)。您的NGINX服务器现在可以抵御DoS攻击,同时仍然允许用户上传文件。当然,这并不是预防DoS攻击的万能措施,针对大量DDOS攻击建议使用专业的硬件防火墙。

Andrew
暂无描述