@phpcoder81

Как ограничить количество запросов к серверу?

Как наименьшими ресурсами ограничить доступ к серверу (json вывод), чтобы обращения были не чаще раза в 10 секунд?
Я сделал в самом начале скрипта пока что PDO + Sqlite. Где сначала
1) сверяется время (timestamp) последнего обращения
2) если больше 10 секунд, то обновляем поле и пускаем дальше по скрипту. Если меньше exit();

Можно также сделать простой текстовый файл, с одно лишь цифрой php time() и по нему делать аналогичное.

Подскажите, какой из этих способов наиболее легкий и простой? Может есть еще более простое решение?
Например если будет масса одновременных запросов. Вот от них надо защитить ресурсы. Потому сам скрипт выполняется около секунды. И массовые запросы просто перегрузят сервер.
  • Вопрос задан
  • 964 просмотра
Пригласить эксперта
Ответы на вопрос 2
REZ1DENT3
@REZ1DENT3
web-developer
Думаю стоит настроить ограничение на уровне веб-сервера.
Вот пример для nginx.
https://nginx.org/ru/docs/http/ngx_http_limit_req_...

Можно и с помощью кода, но это будет не так эффективно.
Вот для примера https://github.com/nikolaposa/rate-limit
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Есть 2 варианта, и первый - как написал Максим Бабичев использовать ограничение на стороне сервера или кода, однако по вопросу не ясно что за запросы ты обслуживаешь, по этому, в случае если у тебя запросы однотипные, поможет кэширование, что позволит отдавать относительно свежие данные без запроса в бд. Ну, и если предполагается прям завал запросов из которых часть повторяющихся, а часть уникальных - отделить первые от вторых и по первым отдавать кэш, а по вторым использовать задержки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽