我们在站点维护的过程中经常需要对Nginx配置文件进行修改,本文分享一些实用的规则,修改nginx的配置之前务必做好备份,修改完毕后需要重载一次nginx的,否则不会生效。
比如将网站数据库导出到站点根目录进行备份,很有可能也会被别人下载,从而导致数据丢失的风险。以下规则可以防止一些常规的文件被下载,可根据实际情况增减。
location ~ \.(zip|rar|sql|bak|gz|7z)$ { return 444; }
如果经常分析网站日志你会发现,一些奇怪的UA总是频繁的来访问网站,而这些UA对网站收录毫无意义,反而增加服务器压力,可以直接将其屏蔽。
if ($http_user_agent ~* (SemrushBot|python|MJ12bot|AhrefsBot|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup)) { return 444; }
比如网站上传目录,通常存放的都是静态文件,如果因程序验证不严谨被上传木马程序,导致网站被黑。以下规则请根据自身情况改为您自己的目录,需要禁止的脚本后缀也可以自行添加。
#uploads|templets|data 这些目录禁止执行PHP location ~* ^/(uploads|templets|data)/.*.(php|php5)$ { return 444; }
如果网站被恶意灌水或CC攻击,可从网站日志中分析特征IP,将其IP或IP段进行屏蔽。
#屏蔽192.168.5.23这个IP deny 192.168.5.23; #屏蔽192.168.5.* 这个段 denu 192.168.5.0/24;
普通的防盗链是通过referer来做,比如:
location ~* \.(gif|jpg|png|bmp)$ { valid_referers none blocked *.example.com server_names ~\.google\. ~\.baidu\.; if ($invalid_referer) { return 403; } }
限速包括限制请求的并发数和请求的下载速度。
简单的限制某个线程的下载速度就直接加上一句话就可以了:
limit_rate 1024k;
更改此文件的名字,让别人猜不到,例如限制:/xmlrpc.php
在服务器加入以下代码:
location =/xmlrpc.php { deny all; }
加入之后,再次访问,会拒绝访问请求:返回403报错!
扫码赞赏,鼓励支持
相关问题
Centos 7.x 下做端口映射/端口转发Windows server 2008/2012/2016/2019 服务器桌面不显示我的电脑(计算机)的解决方案No input file specified的解决方法网站如何添加工信部网站备案号和链接代码腾讯云对象存储内网与外网地址访问Windows远程桌面多个用户如何同时使用Chrome谷歌浏览器?