- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева

Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Кстати код что я писал выше нерабочий.
у меня есть еще одна директива
limit_req zone=one burst=3 nodelay;
Вот она и отшибала иногда ботов
а вот этот код
"HTTP/1.0" $binary_remote_addr;
default "";
}
limit_req_zone $limit zone=bot:10m rate=1r/m;
Позволяет делать запросы чаще 1 раза в минуту с 1 айпи
попробовал так
default 0;
"HTTP/1.0" 1;
}
limit_req_zone $limit zone=bot:10m rate=1r/m;
и получил сам 503 ошибку
в логах с моего айпи первый запрос
7*.1*2.7*.2** - - [25/Dec/2016:22:19:19 +0300] "GET / HTTP/1.1" 301
второй
7*.1*2.7*.2** - - [25/Dec/2016:22:19:19 +0300] "GET / HTTP/2.0" 503
Нифига не понимаю короч
Вот так не работает:
default 0;
"HTTP/1.0" $binary_remote_addr;
"HTTP/1.1" "";
"HTTP/2.0" "";
}
limit_req_zone $limit zone=bot:10m rate=1r/m;
ВОт так получаю сам 503
default 0;
"HTTP/1.0" $binary_remote_addr;
"HTTP/1.1" "2";
"HTTP/2.0" "3";
}
limit_req_zone $limit zone=bot:10m rate=1r/m;
Продолжаю диалог с самим собой. Методом научного тыка выяснил что работе прошлых конфигов мешала еще одна запись лимит зон, если ее убрать - все работает.
На данный момент так:
default '';
~*(Googlebot|YandexBot) $binary_remote_addr;
}
limit_req_zone $limit_bots zone=goodbots:10m rate=5r/s;
map $server_protocol $limit {
"HTTP/1.0" $binary_remote_addr;
default "";
}
limit_req_zone $limit zone=bot:10m rate=1r/m;
теперь встал другой вопрос, как добавить еще один limit_req_zone так сказать для "всех остальных", кто не попал в первые 2 условия?
Если просто добавить ниже limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
то верхние правила перестанут работать, почем у так не понимаю.
в конфиге хоста пока так
# limit_req zone=one burst=5 nodelay;
limit_req zone=bot;
См http://mailman.nginx.org/pipermail/nginx-ru/2013-March/050588.html
Едрить мадрить - limit_req zone=one burst=5 nodelay; нужно в http поднять?
Но этож тогда лимиты пойдут и на статику тоже. Других вариантов нет?
---------- Добавлено 26.12.2016 в 17:09 ----------
Все равно не понимаю, как лимит
в секции сервер
может воздействовать на
limit_req_zone $limit zone=bot
в секции http
зоны то разные!!!
---------- Добавлено 26.12.2016 в 17:20 ----------
Цитирую по ссылке выше
limit_req (поддерживается начиная с версии nginx 1.1.14),
их следует указывать на одном уровне.
Так у меня так и указано - три в http
limit_req_zone $limit zone=bot
limit_req_zone $binary_remote_addr zone=one
и три в сервер
limit_req zone=goodbots burst=5 nodelay;
limit_req zone=one burst=5 nodelay;
limit_req zone=bot;
В общем остановился пока на этом
в секцию http
default 0;
# боты google
64.68.80.0/21 1;
64.233.160.0/19 1;
66.102.0.0/20 1;
72.14.192.0/18 1;
209.85.128.0/17 1;
216.239.32.0/19 1;
66.249.0.0/16 1;
# боты yandex
77.88.0.0/18 1;
87.250.224.0/19 1;
93.158.0.0/16 1;
95.108.128.0/17 1;
213.180.192.0/19 1;
141.8.0.0/16 1;
130.193.0.0/16 1;
5.255.253.0/24 1;
178.154.149.0/24 1;
}
map $whitelist $limit {
0 $binary_remote_addr;
1 "";
}
limit_req_zone $limit zone=vse:10m rate=1r/s;
map $server_protocol $limit2 {
"HTTP/1.0" $binary_remote_addr;
default "";
}
limit_req_zone $limit2 zone=bot:10m rate=1r/m;
в секцию сервер нужного хоста
limit_req zone=bot;
Код работает, проверил. Он:
1. Не лимитирует основных поисковых ботов (можно дбавлять по желанию)
2. Всем остальным дает делать не более 1 запроса в секунду (с кратковременными всплесками до 3 запросов).
3. Тормозит разных зверей шляющихся по HTTP/1.0 до 1 запроса в минуту
Так же в сервер добавил наиболее бешеных ботов, шляющихся именно по моим сайтам
return 444;
}
Кстати про ботов. гугл и яндекс у меня шляются по http 1.1
Но карту сайтов и robots.txt забирают по http 1.0
Может не правильно что настроено, но пожалуй эксперимент повторять не буду.
Я просматриваю логи каждый час - из ботов по http 1.0 ходит только бот майл ру и то 1 его вид, который долбит robots.txt, но он заходит не часто, поэтому не тормозится. Ближайшие пару дней все 503 ошибки буду просматривать и анализировать вручную, мож че подкручу.
сделал как у вас, но почему то адреса которые я прописал таки попадают под лимит