server
块中添加或修改相应的location
规则。修改Nginx屏蔽网址的规则的方法
防止文件被下载
| 规则 | 说明 |
| --| --|
|location ~ \.(zip|rar|sql|bak|gz|7z)$ { return 444; }
| 防止一些常见格式的文件被下载。 |
屏蔽非常见蜘蛛(爬虫)
| 规则 | 说明 |
| --| --|
|if ($http_user_agent ~* (SemrushBot|python|MJ12bot|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup)) { return 444; }
| 屏蔽一些非常见且对网站无意义的爬虫,减少服务器压力。 |
禁止某个目录执行脚本
| 规则 | 说明 |
| --| --|
|location ~* ^/(uploads|templets|data)/.*.(php|php5)$ { return 444; }
| 禁止在指定目录下执行PHP脚本,以防止木马程序的执行。 |
屏蔽某个IP或IP段
规则 | 说明 |
deny 192.168.5.23; | 屏蔽指定的单个IP。 |
deny 192.168.5.0/24; | 屏蔽指定的IP段。 |
Nginx配置示例
server { listen 80; server_name example.com; # 防止文件被下载 location ~ \.(zip|rar|sql|bak|gz|7z)$ { return 444; } # 屏蔽非常见蜘蛛(爬虫) if ($http_user_agent ~* (SemrushBot|python|MJ12bot|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup)) { return 444; } # 禁止某个目录执行脚本 location ~* ^/(uploads|templets|data)/.*\.(php|php5)$ { return 444; } # 屏蔽某个IP或IP段 deny 192.168.5.23; deny 192.168.5.0/24; }
相关问题与解答
问题1:如何防止恶意域名指向我的站点?
解答: 为了防止恶意域名指向你的站点,可以在 Nginx 配置文件中添加以下规则:
server { listen 80 default_server; server_name _; return 500; }
这段代码会将所有未明确定义的域名请求重定向到一个500错误页面,从而防止恶意域名的访问。
问题2:如何屏蔽来自特定网站的请求?
解答: 如果需要屏蔽来自特定网站的请求,可以在 Nginx 配置文件中的 server 块内添加以下条件判断:
if ($http_referer ~* "***") { return 403; }
$http_referer
是Nginx中的一个内置变量,用来存放HTTP请求头中的Referer字段,通过这种方式可以有效屏蔽来自特定网站的请求。
各位小伙伴们,我刚刚为大家分享了有关“修改Nginx屏蔽网址的规则的方法”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!