Heim  >  Fragen und Antworten  >  Hauptteil

Nginx-Zufallsantwortfunktion

Als der Client mit dem Server interagierte, kam es zu einem Timing-Designfehler, der dazu führte, dass der Server innerhalb von 10 Minuten mehr als 300.000 Anfragen empfing. Der Druck auf das PHP-Backend stieg sofort an und führte zum Zusammenbruch.

Da in der aktuellen Lösung wiederholte Anfragen innerhalb kurzer Zeit denselben Inhalt erhalten, werden Anfragen mit speziellen Parametern direkt auf der Nginx-Ebene abgelegt und es werden keine Ergebnisse direkt zurückgegeben.

Der Code lautet wie folgt

shell    if ( $query_string ~ "api=(getpush|remove)")
    {
        return 200 '{"resultStatus":1,"allCount":0,"data":[]}';
        break;
    }

Diese Lösung weist Mängel auf, z. B. dass sie nur 90 % der Anfragen verbietet oder nur innerhalb einer bestimmten Zeit wirksam wird. Ich frage mich, ob irgendwelche Studenten ähnliche Anti-Angriffs-Lösungen haben?

我想大声告诉你我想大声告诉你2712 Tage vor466

Antworte allen(2)Ich werde antworten

  • 我想大声告诉你

    我想大声告诉你2017-05-16 17:27:34

    可以考虑用一个upstream,设定一个权重,把90%的请求转移到一个dummy的接口上

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 17:27:34

    fine, 自己来把坑补上

    nginx+lua=openresty

    Antwort
    0
  • StornierenAntwort