Při vytváření zálohy pomocí komponenty Akeeba Backup se může na některých sdílených hostinzích objevit chyba:

AJAX Loading Error
HTTP Status: 429
429 Too Many Requests
openresty

Tato chyba obvykle znamená, že server vyhodnotil požadavky Akeeba Backup jako příliš časté nebo příliš náročné a dočasně další požadavky zablokoval. Nejde tedy nutně o chybu Joomla nebo Akeeba Backup, ale zpravidla o omezení hostingu, například:

  • omezení počtu požadavků za určitý čas,
  • omezení CPU výkonu,
  • omezení PHP procesů,
  • ochranu reverzní proxy nebo webového serveru,
  • krátký maximální čas běhu PHP procesu.

Doporučené nastavení Akeeba Backup

Nastavení najdete v administraci Joomla:

Komponenty → Akeeba Backup → Profile Configuration → Fine tuning

Nastavení Doporučená hodnota Význam
Minimum execution time 2.00 s Minimální délka jednoho AJAX kroku. Vyšší hodnota snižuje frekvenci požadavků na server.
Maximum execution time 2 s Maximální čas, po který Akeeba aktivně provádí operace v rámci jednoho kroku.
Execution time bias 50 % Rezerva, kterou si Akeeba ponechává vůči maximálnímu povolenému času PHP procesu.
Resume backup after an AJAX error has occurred Ano Po AJAX chybě se Akeeba pokusí v záloze pokračovat.
Wait period before retrying the backup step 30 s Doba, po kterou Akeeba po chybě čeká před novým pokusem.
Maximum retries of a backup step after an AJAX error 5 Maximální počet opakování neúspěšného kroku.
Set an infinite PHP time limit Ne Na sdíleném hostingu zpravidla není vhodné snažit se rušit časový limit PHP.
Set a large memory limit Ano Akeeba se pokusí využít vyšší dostupný PHP memory limit.

Proč zvýšit Minimum execution time?

Při chybě 429 Too Many Requests je důležité omezit počet AJAX požadavků, které Akeeba odesílá na server. Pokud je jeden krok dokončen příliš rychle, Akeeba okamžitě spustí další požadavek. Server může sérii rychle po sobě jdoucích požadavků vyhodnotit jako nadměrnou zátěž.

Nastavením:

Minimum execution time: 2.00 s

se zajistí, že jednotlivé kroky nebudou následovat příliš rychle za sebou.

Pokud chyba 429 přetrvává, lze hodnotu postupně zvýšit:

2 s → 3 s → 5 s

Vyšší hodnota sice prodlouží celkovou dobu zálohování, ale výrazně sníží počet požadavků odesílaných na server.

Archivní formát

Jako archivační formát je vhodné použít:

JPA format (recommended)

Formát JPA je pro Akeeba Backup optimalizovaný a zpravidla je na sdíleném hostingu méně náročný než klasický ZIP archiv.

Rozdělení velkého archivu

V sekci:

Archiver engine → JPA format

lze nastavit:

Part size for split archives: 100 MB

Akeeba poté nevytvoří jeden velký soubor, ale rozdělí zálohu do několika částí. Například:

site-backup.jpa
site-backup.j01
site-backup.j02
site-backup.j03

Při obnově webu je nutné mít všechny části archivu uložené společně ve stejném adresáři.

Doporučené základní nastavení

Archiver engine:
JPA format

Minimum execution time:
2.00 s

Maximum execution time:
2 s

Execution time bias:
50 %

Resume backup after AJAX error:
Ano

Wait period before retrying:
30 s

Maximum retries:
5

Set an infinite PHP time limit:
Ne

Set a large memory limit:
Ano

Part size for split archives:
100 MB

Pokud se chyba 429 stále objevuje

Pokud se záloha stále zastavuje chybou 429 Too Many Requests, doporučuje se postupně zvýšit parametr:

Minimum execution time

například nejprve na:

3.00 s

a pokud problém pokračuje:

5.00 s

Ostatní hodnoty lze ponechat beze změny.

Co znamená odpověď OpenResty?

Pokud chybová stránka obsahuje:

429 Too Many Requests
openresty

znamená to, že požadavek byl pravděpodobně odmítnut ještě na úrovni webového serveru nebo reverzní proxy. Akeeba tedy nemusí být ukončena samotnou Joomla nebo PHP, ale některou z ochranných nebo výkonových vrstev hostingu.

Další doporučení

  • nezálohovat staré zálohy Akeeba Backup,
  • vyloučit nepotřebné cache adresáře,
  • vyloučit velké dočasné soubory,
  • používat JPA místo ZIP,
  • u velkých webů rozdělit archiv na části,
  • při opakované chybě 429 zvýšit Minimum execution time,
  • ověřit u hostingu limity PHP procesů, CPU a počet povolených požadavků.

Závěr

Chyba 429 Too Many Requests při zálohování pomocí Akeeba Backup obvykle neznamená poškození Joomla ani samotné komponenty. Nejčastěji jde o ochranu nebo výkonové omezení hostingu.

Pro sdílený hosting je vhodné Akeeba Backup nastavit tak, aby jednotlivé kroky probíhaly pomaleji a server nebyl zatěžován velkým množstvím AJAX požadavků v krátkém čase. Jako výchozí hodnota se osvědčuje Minimum execution time 2 sekundy; v případě pokračujících problémů lze použít 3 až 5 sekund.