如何限制 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
暫無描述