Powodem, dla którego chcę to zrobić, jest to, że użytkownicy rozwijają się w oparciu o nasz interfejs API za pomocą JavaScript, a niektórzy programiści psują się i powodują, że odwiedzający trzasną serwer żądaniami AJAX. Kiedy tak się stanie, chcę być w stanie ograniczyć żądania API do około 50 żądań na minutę lub coś w tym rodzaju.
Uwaga: (szczególnie zasoby intensywnie korzystające z DB, więc być może na poziomie ścieżki, a nie całego serwera (np. Przepustnica „/ json_api /”, ale nie „/ static /”).
źródło
zone=limit_req_zone
zamiast tego chciałeś powiedzieć ?$http_authorization
zmiennej, aby zdefiniować nową strefę, w której kluczem jest taki nagłówek, a nie adres IP, tj.limit_req_zone $http_authorization zone = per_user : 10m rate = 5r/s
, A następnie użyćper_user
strefy w sekcjach lokalizacji, w których chcesz wprowadzić ograniczenie prędkości dla użytkownika. Nieprzetestowane, tylko czytam dokumentację i listę zmiennych nginx ... daj mi znać, jeśli spróbujesz tego!