- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброго времени,
Раньше блокировка была через оператор if
Сейчас через директиву map
В map, как правильно заблокировать пустой юзерагент?
Перед этим правилом поставьте:
Или переделать правило на такое:
if ( $http_user_agent = "" )
Или переделать правило на такое:
~^$ 1;
или так:
~(^$) 1;
или можно одной строкой:
~*(^$|Bot1|Bot2|Bot3) 1;
Какой вариант "наиболее" верный? Прошу прощения за глупые вопросы, незнание вынуждает.
Ошибку полностью напишите. Там скорее всего написано
"if" directive is not allowed here in название файла и строка
Я вам написал оптимальный вариант.
Именно так, nginx: [emerg] "if" directive is not allowed here in /etc/nginx/conf.d/bot.conf , где bot.conf - это мой файл с
Но сейчас уже другой конфиг сервера. Блокирую в /etc/nginx/nginx.conf в секции http, map $http_user_agent $limit_bots {...}
Поэтому использую map
Именно так, nginx: [emerg] "if" directive is not allowed here in /etc/nginx/conf.d/bot.conf , где bot.conf - это мой файл с
Ну вот и косяк, у вас в синтаксисе. А не if запретил nginx. Он всегда будет работать т.к. даже при map вам надо будет проверять переменную через if
Правильный код:
if ($http_user_agent ~* (bot1|bot2|bot3) ) {
return 444;
}
LEOnidUKG #:
Я вам написал оптимальный вариант.
Я без какой-либо претензии. Решила уточнить на всякий случай.
Спасибо Вам за оперативный отклик и подсказку!
Но сейчас уже другой конфиг сервера. Блокирую в /etc/nginx/nginx.conf в секции map $http_user_agent $limit_bots {...}
Я бы туда вообще не лез, особенно если есть папка
/etc/nginx/vhosts-includes
в которую надо складывать все свои блокировки.