Apache에 대한 동시 요청 수를 제한하고 초과 요청을 버퍼링하는 것이 가능합니까(503을 반환하는 대신)?

Apache에 대한 동시 요청 수를 제한하고 초과 요청을 버퍼링하는 것이 가능합니까(503을 반환하는 대신)?

PHP-FPM을 사용하여 Apache 2.4에서 제공하는 웹사이트가 있습니다. 일부 페이지는 생성되는 데 몇 초가 걸립니다. 때때로 일부 봇이나 크롤러는 이러한 많은 페이지를 한 번에 다운로드하려고 시도하며 모든 요청에 ​​대해 PHP 프로세스가 생성되고 메모리가 부족하여 서버가 매우 느려집니다.

PHP 프로세스 수 또는 동시 연결 수(mod_qos를 사용하는 단일 IP의 동시 연결 수까지)를 제한할 수 있지만 추가 요청(또는 해당 IP의 최소한 추가 요청)은 즉시 503 결과를 얻습니다. 초과 요청을 백로그에 보관하고 이전 요청이 완료되면 처리할 수 있습니까?

답변1

이 매뉴얼에 따라 Nginx를 역방향 프록시로 설치하고 거기에 속도 제한을 적용합니다.https://www.nginx.com/blog/rate-limiting-nginx/

나는 그 페이지에 설명된 모든 기능을 복사하고 싶지 않습니다. 많은 기능이 있으므로 직접 읽어 보는 것이 좋습니다. 그것은 공식 블로그 페이지이므로 갈 가능성은 거의 없습니다.

관련 정보