Welcome! Log In Create A New Profile

Advanced

Как ограничить скорость запросов только php-страниц, не трогая всё остальное?

January 08, 2024 10:03AM
Приветствую, уважаемые!

Мне на сервере нужно ограничить скорость запросов только php-страниц,
не трогая запросы статического контента (картинок, js, фонтов и т.п.).

Я сделал такой конфиг:

http {
...
limit_req_zone $binary_remote_addr zone=zone_one:10m rate=1r/s;
...
server {
...
location ~ \.php$ {
...
limit_req zone=zone_one burst=10;
...
}
...
location / {
try_files $uri $uri/ =404;
}
}
}

Выглядит всё неплохо, пока на сервер не начинают заходить роботы гугля:
их запросы php-страниц получают ошибку 503 уже со второго запроса,
а не с десятого, как было задумано.

Когда начал смотреть логи, то вижу, что запросы от робота выглядят так
(все эти запросы идут менее, чем за секунду):
1. Запрос первой php-страницы: ответ 200.
2. Запрос нескольких десятков картинок, скриптов и т.п.: ответ 200.
3. Запрос второй php-страницы: ответ 503.
4. Запрос нескольких десятков картинок, скриптов и т.п.: ответ 200.
5. Запрос третьей php-страницы: ответ 503.
6. ...

То есть выглядит так, что в ограничительное ведро наливаются все подряд
запросы, а не только запросы php-страниц, поэтому запросы php-страниц
начинают фильтроваться слишком рано.

Может кто-нибудь подкинуть идею - как решить эту задачу правильно?
Subject Author Posted

Как ограничить скорость запросов только php-страниц, не трогая всё остальное?

parimanita January 08, 2024 10:03AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 97
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready