如何调整Nginx配置以屏蔽特定网址?

avatar
作者
猴君
阅读量:0
要修改Nginx屏蔽网址的规则,可以编辑Nginx配置文件,在server块中添加或修改相应的location规则。

修改Nginx屏蔽网址的规则的方法

防止文件被下载

| 规则 | 说明 |

| --| --|

如何调整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屏蔽网址的规则的方法”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!