Nginx——如果是referer,则将(x-forwarded-for)ip添加到黑名单中
我已经编写了一个基本的http referer重定向程序,如下所示:Nginx——如果是referer,则将(x-forwarded-for)ip添加到黑名单中,nginx,redirect,http-status-code-301,Nginx,Redirect,Http Status Code 301,我已经编写了一个基本的http referer重定向程序,如下所示: if ($http_referer ~* (google|yahoo|bing|duckduckgo)) { return 301 https://altavista.com; } 我的目标是这样的 if ($http_referer ~* (google|yahoo|bing|duckduckgo)) { add $x-forwarded-for bad_ips.txt; <-- this line is
if ($http_referer ~* (google|yahoo|bing|duckduckgo)) { return 301 https://altavista.com; }
我的目标是这样的
if ($http_referer ~* (google|yahoo|bing|duckduckgo)) {
add $x-forwarded-for bad_ips.txt; <-- this line is the question (x-forwarded-for because it's behind cloudflare)
return 301 https://altavista.com;
}
if ($bad_ip) {
return 301 https://altavista.com;
}
if($http|u referer~*(谷歌|雅虎|必应| duckduckgo)){
添加$x-forwarded-for bad_ips.txt;,直到我记得没有直接的方法来执行此操作
根据博客,付费选项可以使用Nginx Plus
除此之外,我现在可以看到两个选项:
与LUA模块一起使用。您需要做的是
在每次请求时,将IP写入文件
在从文件读取的每个请求上,如果存在IP,则301重定向
如果您不想使用OpenResty,那么您也可以
[我现在担心的是效率。这种方法可能会增加性能开销,因为每次请求都必须解析文件。]
与Nginx一起使用Fail2Ban
我想在评论中添加这一点,但我没有足够的声誉发表评论。
为什么不使用fail2ban
?我可以使用fail2ban,但如果可能的话,我真的希望它链接到上面的指令。