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

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую. Интересует, можно ли сделать, чтобы кол-во запросов при использовании rate limit per ip в nginx считалось только для всей страницы, а не с учетом каждого подгружаемого ресурса в странице?
Например, есть страница site.ru/index.php, при загрузке данной страницы начинают грузится:
site.ru/style.css
site.ru/img1.jpg
site.ru/img2.jpg
и тд. В итоге каждый подгружаемый элемент нужно учитывать при задании значения rate limit, а т.к. у разных страниц чаще всего разное кол-во подгружаемых элементов, данный модуль становится довольно бесполезным, т.к. приходится задавать большие значения с запасом.
Или, можно ли задавать rate limit для всех ресурсов на странице сразу? Например, чтобы любые ресурсы на странице, включая саму страницу, можно было бы загружать не более 3 раз в секунду? Тогда было бы плевать на их число.
limit_req задается на уровне URL ("location")
просто правильно пропишите соотв. location'ы, в некоторых задавайте параметр, а в некоторых нет
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
limit_req задается на уровне URL ("location")
просто правильно пропишите соотв. location'ы, в некоторых задавайте параметр, а в некоторых нет
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
Можно более подробнее или примеры? Я задал rate limit 3 для статик файлов, в итоге этот лимит действует для каждого расширения, и если на странице более 3 картинок, 4ая не грузится. Т.е. это также бесполезно. А rate limit для .php вообще не работает. У меня тысячи директорий, я не могу задавать каждой свой лимит.
Вообще location поддерживает регулярные выражения, не нужно перечислять "тысячи директорий". Все работает и для .php и для чего угодно, т.к. nginx без разницы что там стоит за location'ом.
Приведите свой конфиг nginx, посмотрим.
Вообще location поддерживает регулярные выражения, не нужно перечислять "тысячи директорий". Все работает и для .php и для чего угодно, т.к. nginx без разницы что там стоит за location'ом.
Приведите свой конфиг nginx, посмотрим.
Мне нужно ограничить число запросов до каждого подгружающегося ресурса на странице, но чтобы для каждого ресурса был свой счетчик запросов, а не общий на все ресурсы страницы. Как я понял, на nginx даже такого примитива сделать нельзя? Что толку ограничить запросы к .php/.html, если ддосер может найти какую нибудь картинку весом 2 метра и начать запрашивать ее по 50 раз в сек - nginx в случае ограничения 50 r/s ничего не увидит, потому что он как раз уложится в эти 50 запросов, ведь грузить он будет 1 файл всего.
Пока что я вижу полезность этого модуля только если у вас сайт-одностраничник, где всегда одно и тоже число подгружаемых ресурсов.
l1mon, а посидеть немного и разобраться, вместо того чтобы возмущаться?..
статику отдаем без лимитов, т.к. нагрузка при отдаче статики минимальна (или поставьте на статику отдельные более высокие лимиты).
все остальное с лимитами, кусок рабочего конфига:
l1mon, а посидеть немного и разобраться, вместо того чтобы возмущаться?..
статику отдаем без лимитов, т.к. нагрузка при отдаче статики минимальна (или поставьте на статику отдельные более высокие лимиты).
все остальное с лимитами, кусок рабочего конфига:
Спасибо, что отозвались. А что может относится к остальному? Просто не совсем понимаю как будут учитываться обращения к php. Что, если на странице инклюдится несколько php файлов, 2 например? Получается при обращении к странице будет выполняться 3 запроса к .php файлам, а не 1? Не понимаю какие значения ставить даже примерно.
И можно ли сделать наоборот, указать location - html|htm|php и задать им, например, 3 запроса в секунду, а для всего остального / - уже 50? Это будет работать? Есть ли еще какие НЕстатические файлы? Или только html и php?
Что, если на странице инклюдится несколько php файлов, 2 например? Получается при обращении к странице будет выполняться 3 запроса к .php файлам, а не 1? Не понимаю какие значения ставить даже примерно.
инклуды - это файловые операции, php напрямую открывает файлы, без участия веб сервера, т.е. к вебсереру будет 1 запрос.
сразу ставьте большие лимиты, сами открывайте разными браузера свой сайт и смотрите логи, если знаете, что файл статический, то добавляйте его в "статический" локейшен. (еще svg, woff. но лучше сами смотрите логи и настраивайте под конкретный сайт/сайты).
когда настроите - уменьшайте лимиты и смотрите логи.
И можно ли сделать наоборот, указать location - html|htm|php и задать им, например, 3 запроса в секунду, а для всего остального / - уже 50? Это будет работать? Есть ли еще какие НЕстатические файлы? Или только html и php?
работать то будет..., но как Вы отследите обращения к корню сайта, к его директориям (т.е. без расширения).
"Есть ли еще какие НЕстатические файлы?" - зависит от сайта, например на одном проекте у меня .jpg не статический, т.е. формируется на лету. :)
инклуды - это файловые операции, php напрямую открывает файлы, без участия веб сервера, т.е. к вебсереру будет 1 запрос.
сразу ставьте большие лимиты, сами открывайте разными браузера свой сайт и смотрите логи, если знаете, что файл статический, то добавляйте его в "статический" локейшен. (еще svg, woff. но лучше сами смотрите логи и настраивайте под конкретный сайт/сайты).
когда настроите - уменьшайте лимиты и смотрите логи.
работать то будет..., но как Вы отследите обращения к корню сайта, к его директориям (т.е. без расширения).
"Есть ли еще какие НЕстатические файлы?" - зависит от сайта, например на одном проекте у меня .jpg не статический, т.е. формируется на лету. :)
Спасибо. Могу ли я сделать отдельный список статик расширений для кеша (expires 7d), а второй для rate limit? Не будет ли конфликта?
Например:
location jpg|png|css|js|
expires 7d
location jpg|png|css|js|ico|txt|pdf...
limit_req ...
будет конфликт, используйте внутри локейшена "if"