
我有一個由 Apache 2.4 和 PHP-FPM 提供服務的網站。有些頁面需要幾秒鐘才能產生。有時,一些機器人或爬蟲會嘗試一次下載大量此類頁面,為所有請求產生 PHP 進程,伺服器會因為記憶體不足而變得非常慢。
我可以限制 PHP 進程的數量或並發連接的數量(甚至可以使用 mod_qos 限制來自單個 IP 的並發連接的數量),但隨後進一步的請求(或至少來自該 IP 的進一步請求)會立即得到 503 結果。是否可以將多餘的請求保留在積壓中,並在先前的請求完成後處理它們?
答案1
安裝 Nginx 作為反向代理並在那裡應用速率限制,請按照本手冊:https://www.nginx.com/blog/rate-limiting-nginx/
我不想複製該頁面上描述的所有功能,有很多功能,您最好自己閱讀。那是官方部落格頁面,所以不太可能會消失。