Az f5 elleni védelem

Ha megnyomja az F5 billentyűt a böngészőablakban, és néhány percig tartja, könnyed DDOS támadást szervezhet a webhelyen. Az F5 funkciógomb jelzi a böngészőnek az oldal újratöltését.

Ha megnyomja és hosszú ideig tartja, akkor a számítógép sokszor megismételni próbálja (oldal), így többszörös kérések formájában terhelést hoz létre a kiszolgálón. És mivel bármely szerver képességei nem korlátlanok, akkor a kérések "érzéseinek" túlteljesedésével abbahagyhatja a munkát.
A kiszolgáló a kiszolgáló, a webhely és a használt CMS műszaki jellemzőitől és beállításaitól függ. Ebben a cikkben leírom, hogyan kell helyesen konfigurálni az Apache2 webszervert, hogy még az 512 MB-os memóriával rendelkező legkisebb modullal rendelkező VDS-kiszolgáló is nagyszámú kérelemmel szembesüljön, beleértve az F5 billentyű által okozott kéréseket is.

Felkészülés a szerver konfigurálására

Határozza meg, melyik MPM modul használja az Apache2-t. A CentOS esetében ez így néz ki:

Nagyszerű, van Server MPM: Prefork

Az Apache konfigurálása, ez nem lenne probléma a zhore memóriával

Az Apache MPM Prefork modul paramétereinek rövid leírása

StartServers - a kiszolgáló indításakor létrehozott gyermekprojektek száma.
A MinSpareServers a minimális számú felesleges (tartalék) gyermekszerver folyamat, amely a potenciális kérésekre vár.
MaxSpareServers - a potenciális kérésekre váró tartalék folyamatok maximális száma. Ha ezt a számot túllépték, a felesleges folyamatok meg fognak ölni.
A MaxClients - az MPM prefork modul legfontosabb paramétere, beállítja az egyidejűleg aktív folyamatok számának felső határát. A memóriafelhasználás függ. Az értéke felülírja az előző paraméterek értékét.
A ServerLimit általában MaxClients.
MaxRequestsPerChild - mennyire gyakran szervezi a folyamatokat a folyamatok feldolgozása, a régiek megölése és az újak indítása. Hasznos az Apache és annak könyvtárai memória szivárgásának.
A KeepAlive - hosszú távú HTTP-munkameneteket biztosít, lehetővé téve több kérés küldését ugyanazon a kapcsolaton keresztül. Hasznos lehet bekapcsolni, ha az oldalak sok képet tartalmaznak. De ha az NGINX-t proxykiszolgálóként használja, akkor hagyja ki az értéket.

Lásd még: A probléma megoldása Nem sikerült: initscripts.x86_64 0: 9.49.24-1.el7 a CentOS 7-en

A legfontosabb paraméter a MaxClients. csak az Apache webszerver egyidejű folyamatainak számáról beszél.

A MaxClients értékének megállapítása

Értékének meghatározása nem nehéz. Az 512 MB RAM méretű kiszolgáló értékének kiszámítása. Úgy döntöttünk, hogy az Apache erőforrásainak 50% -át adjuk meg, azaz 256 MB-ot a mi esetünkben.
Határozza meg, hogy hány memória egy folyamat eltörölni fogja:

A következő értékeket kapjuk:

Kiderült, hogy átlagosan egy Apache folyamat 21 MB-ot fogyaszt. Ennek megfelelõen a 256 MB felosztott térfogatban 12 folyamatot tudunk futtatni.
Javítsuk ki az új érték konfigurációs fájlját:

A többi paraméter javítva az 512 MB RAM memóriával rendelkező szerverre vonatkozó ajánlások alapján.
Miután módosította a konfigurációs fájlt, ne felejtse el újratölteni az Appache fájlt:

köszönöm

A cikk írásakor a következő források kerültek felhasználásra:

Kapcsolódó cikkek