在本文中,我们将向您展示如何在我们的Nginx Web服务器之一中阻止引荐来源垃圾邮件。
1.找到模式
检查Nginx access.log
文件,并确定“引荐来源垃圾邮件”模式。
$ sudo tail -f /var/log/nginx/access.log
一些模式:
200 http://???.ru/engine/redirect.php?url=http://mywebsite.com/site/blogspot.com.au
200 http://???.com/tp/out.php?link=alternatevideo&url=http%3A//mywebsite.com/site/readyliftproshop.com
200 http://???.edu/online/redirect.asp?url=http://mywebsite/site/wheretoshophongkong.com
我们将阻止以下模式:
- redirect.php
- out.php
- redirect.asp
2.阻止并返回405
编辑sites-enabled/default
,如果以上任何模式都匹配,则直接返回405。
if ($http_referer ~* (redirect.php|redirect.asp|out.php) ) {
return 405;
}
在我们的Nginx Web服务器中查看完整的示例,实际上,我们阻止了许多垃圾邮件的模式。
/etc/nginx/sites-enabled/default
server {
listen 80;
server_name mysite.com;
root /etc/tomcat7/webapps/mysite;
proxy_cache one;
if ($http_referer ~* (seo|referrer|redirect|link=|url=|url?|path=|dku=|babes|click|girl|jewelry|love|organic|poker|porn|sex|teen|video|webcam) ) {
return 405;
}
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/;
}
}
完成后,重新启动Nginx。
再次检查日志文件,现在,将返回与声明的模式405相匹配的任何将来的请求。
$ sudo tail -f /var/log/nginx/access.log
405 http://???.ru/engine/redirect.php?url=http://mywebsite.com/site/blogspot.com.au
405 http://???.com/tp/out.php?link=alternatevideo&url=http%3A//mywebsite.com/site/readyliftproshop.com
405 http://???.edu/online/redirect.asp?url=http://mywebsite/site/wheretoshophongkong.com