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

Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день! Кто-нибудь может подсказать как сделать рабочей вот такую конструкцию.В документации написано, что внутри IF limit_conn не работает.Есть какие-нибудь другие варианты?
if ($http_user_agent !~* (YandexBot|Google|Rambler|Aport|Mail) ) {
#limit_conn one 2;
}
Очевидное, что приходит в голову - это сделать внутренний рерайт на специальную localtion с прописанным limit_conn.
Впрочем, лучше таки оптимизировать сайт, чтобы боты его не валили... Ведь в этом проблема?
Я хочу ограничить пользователя в скачивание более одного файла одновременно, так же как и открытие нескольких страниц сайта одновременно. А вот поисковым ботом наоборот не создавать каких-либо ограничений. Ведь бот может бегать сразу по нескольким страницам, а nginx ему отдаст 503 ошибку, это не есть гуд.Проблема в том, что юзеры скачивают файлы пачками, надо разрешить им только одно одновременно,а так же запретить открытие больше 3 страниц с одного IP.
Используйте limit_req и нормальное значение burst.
Тогда никаких 503 не будет, будет только замедление открытия страниц до нужного вам количества в секунду.
Google сильно реагирует на скорость открытия страницы, поэтому данный способ не подходит.Я так понимаю ограничить соединение по IP, не трогая поисковых ботов не возможно?
Попробуйте так:
server {
error_page 418 = @nolimit;
if ($http_user_agent !~* (YandexBot|Google|Rambler|Aport|Mail) ) {
return 418;
}
location / {
limit_conn one 2;
...
}
location @nolimit {
...
}
}
Я не разбираюсь в nginx.Что нужно прописать в location @nolimit? Если оставить пустым, сайты висят и не загружаются.
Тоже самое, что и в location /
Только без строки limit_conn
Кстати, замените if ($http_user_agent !~* (YandexBot|Google|Rambler|Aport|Mail) ) на if ($http_user_agent ~* (YandexBot|Google|Rambler|Aport|Mail) )
Предпалагаю что сделать ограничение на количество коннектов по значению юзерагента – не возможно в принципе.
Так как сначала клиент подключается к серверу, а уже после подключения передает заголовки HTTP запроса со значением юзерагента.
Проверил на своём ip адресе if ( $remote_addr ~* 'IP' ) конструкция работает.Большое спасибо.
Возник ещё один вопрос, пока что пользователи выкачивают файлы,сайт тоже не работает. Можно ли сделать ограничение не на весь сервер а например на определённые файлы (flv|mp4) и т.д? И есть ли возможно вместо 503 ошибки, показывать определённую страницу, чтобы пользователь знал по какой причине он не может продолжить просмотр?
fiper добавил 01.11.2011 в 11:36
Не зря же на хакере выложили подобную конструкцию.
# Блокируем менеджеры загрузки
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
return 403;
}
# Блокируем некоторые типы ботов
if ($http_user_agent ~* msnbot|scrapbot) {
return 403;
}
Возник ещё один вопрос, пока что пользователи выкачивают файлы,сайт тоже не работает. Можно ли сделать ограничение не на весь сервер а например на определённые файлы (flv|mp4) и т.д? И есть ли возможно вместо 503 ошибки, показывать определённую страницу, чтобы пользователь знал по какой причине он не может продолжить просмотр?
server {
error_page 418 = @nolimit;
error_page 503 /503.html;
location ~* ^.+\.(flv|mp4)${
if ($http_user_agent !~* (YandexBot|Google|Rambler|Aport|Mail) ) {
return 418;
}
limit_conn one 2;
root /бла-бла-бла;
}
location @nolimit {
root /бла-бла-бла;
}
}
И создать нужный файл 503.html
Можно даже подменить ответ сервера, чтобы не было ошибки 503, а она заменялась на стандартный ответ сервера 200.
error_page 503= 200 /503.html
Himiko добавил 01.11.2011 в 11:50
Не зря же на хакере выложили подобную конструкцию.
# Блокируем менеджеры загрузки
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
return 403;
}
# Блокируем некоторые типы ботов
if ($http_user_agent ~* msnbot|scrapbot) {
return 403;
}
Речь была именно про лимит коннектов, а не блокировка по юзерагенту.