Home > Вне категорий > Спам. Моя борьба. Часть 1.

Спам. Моя борьба. Часть 1.

September 5th, 2012 Leave a comment Go to comments

Наверняка, даже люди не имеющие сайтов и серверов натыкались на поисковый спам на форумах, в гостевых книгах, в комментариях.

Нам, увы, приходится ежедневно сталкиваться с проблемами вызванными спамом: переполненные форумы –  медленно загружаются. Тысячи комментариев к статье? Страница статьи медленно загружается, ведь её размер уже не 20кб, а 5мб!

Эта борьба, в нашем случае, состоит из нескольких частей, потому делиться опытом будем в несколько заходов.

Первая часть. Сделаем спам бесполезным.

Изничтожить спам как явление  – невозможно. Он будет в существовать до тех пор, пока будет оставаться выгодным. Но, вполне можно сделать так, чтобы спам именно на вашем сервере был бесполезен.

Мы решили, что все исходящие ссылки указывающие на внешние адреса “станут” локальными, и технически – не индексируемыми поисковиками.

Для этого нам понадобился небольшой модуль к Apache. Алгоритм крайне прост:

 

1. Получаем очередной chunk.
2. Регекспами ищем все ссылки начинающиеся с http://
3. Заменяем буквы http:// например на /wrn.php?

Таким образом, на выходе мы получаем страницу со ссылками такого вида: <a href=’/wrn.php?www.some.external.site.com’></a>

Теперь, нам надо сделать так, чтобы на каждом сайте “появился файл” wrn.php, который обрабатывал бы исходящие ссылки. В этом нам помог Nginx, и его умение работать в режиме прокси.

 

Создаем инстанс апстрима для прокси:

upstream err {
     server 192.168.111.202:80 weight=5 max_fails=2 fail_timeout=10s;
    }

В теле конфига сервера указываем, что все файлы начинающиеся с /wrn.php обрабатываем указанным ранее апстримом.

location /wrn.php  {
      proxy_pass http://err;
      proxy_redirect     off;
      proxy_set_header   Host             $host;
    }

Ну и все что остается, в апстрим положить реально существующий файл wrn.php, который и будет выполняться для всех суб-серверов стоящих за нашим Nginx.

 

В следующих частях будем рассказывать о капчах, базах данных, и поиске спама 🙂

  1. No comments yet.
  1. No trackbacks yet.