- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
https://nginx.org/ru/docs/http/ngx_http_v2_module.html#var_http2
В самом низу переменная $http2.
И как ее можно применить?
Мне http2 ограничивать не нужно, мне http1 тормознуть надо и то выборочно.
Пишу в этой же теме, решил ограничиться пока просто защитой админки, прописал так:
if ($server_protocol ~* "HTTP/1.1") {
return 444;
}
}
В итоге в адинке вижу текст пхп файла
/**
* @package Joomla.Administrator
*
* @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
....................
Пробовал так
if ($server_protocol ~* "HTTP/1.1") {
return 444;
}
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Получаю - File not found.
В чем ошибка?
И вопрос №2
if ($http_user_agent ~ ^(|-|_)$) {return 403;}
как сюда добавить исключение одного IP, дело в том что у меня сайт и база на разных впс и в логах они между собой как раз с пустым рефером общаются.
Если file not found - очевидно, что root неверный
Добавить исключение удобнее через map
Буду благодарен примерам, то что я выше навоял это уже для меня высший пилотаж :)
В общем делюсь решением, по-моему получилось очень красиво.
В секцию http nginx
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;
# mail.ru
217.69.0.0/16 1;
94.100.0.0/16 1;
# bingbot-msn
40.77.0.0/16 1;
207.46.0.0/16 1;
65.52.0.0/14 1;
157.55.0.0/16 1;
}
#Тут мы даем полный карт картбланш на сканирование ботам поисковиков и тормозим разные парсеры работаюшие по протоколу HTTP/1.1 (если запросы идут не из подсетей поисковиков)
map "$whitelist:$server_protocol" $limit1 {
"1:HTTP/1.0" "";
"1:HTTP/1.1" "";
"1:HTTP/2.0" "";
"0:HTTP/1.1" "$binary_remote_addr";
}
limit_req_zone $limit1 zone=bot11:10m rate=5r/m;
#Тут мы тормозим зверей делающий запросы по HTTP/1.0 Очень много дней просматривал логи из нрмальных по HTTP/1.0 изредка малй ру запрашивает роботс.тхт и все, все остальное сканеры.
map "$whitelist:$server_protocol" $limit2 {
"0:HTTP/1.0" "$binary_remote_addr";
}
limit_req_zone $limit2 zone=bot10:10m rate=1r/m;
#Это обычные юзеры приходящие на https по HTTP/2.0. Так же опытным путем установлено что лимит в 15 запросов в минуту + burst=4 nodelay (на моих сайтах) вообще не тормозит нормальных пользователей
map "$whitelist:$server_protocol" $limit3 {
"0:HTTP/2.0" "$binary_remote_addr";
}
limit_req_zone $limit3 zone=vse:10m rate=15r/m;
В секцию нужного хоста
limit_req zone=bot11 burst=2 nodelay;
limit_req zone=vse burst=4 nodelay;
limit_req zone=bot10;