Nefunkční redirect na hostingu, 502 error, bad gateway

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Azathoth
Člen | 495
+
0
-

Zdravím,

mám takový nepříjemný problém:
na hostingu active24 mi nefunguje v žádném presenteru žádný redirect, pro ilustraci řádek:
$this->redirect(„Homepage:default“);
Na lokálním wamp serveru všechno funguje bez problémů, ale active24 hosting vždycky ohlásí 502 error, bad gateway. Když jsem si logoval do souboru, na jakou url adresu ten řádek přesměrovává, tak to přesměrovávalo naprosto správně.
Do logů nic nepadá, ticho po pěšině.
Několikrát jsem jim psal na technickou podporu a tamější admini si s tím nedokážou poradit a poslali mne sem. Protože to na jednom serveru funguje bez problémů, tak si myslím, že to není chyba zdrojových kódů, ale serveru, ale je dost možné, že se pletu.

Budu rád za každou radu.

Tomáš Jacík
Člen | 147
+
0
-

Odesíláš i nějaké jiné hlavičky, nebo jen ten redirect? Zkus naprosto čistou akci (bez BasePresenteru, pokud máš), ve které nebude nic jiného než ten redirect, zda je to v Nette nebo kódem.

Neposíláš někde předtím ještě nějaký výstup? Při nějakém nastavení Apache se mi stávalo, že to hodilo 502 místo zobrazení Tracy.

Funguje to stejně s vypnutým/zapnutým debugem?

Zkus novější/starší Nette.

Azathoth
Člen | 495
+
0
-

Odesílám pouze ten redirect, jiné hlavičky ne (používal jsem firelogger, ale ten jsem vypnul).
Zkusil jsem na ten hosting hodit nette sandbox, kde jsem si udělal redirect a šlo to bez problémů.

Nefunguje to jak s vypnutým, tak se zapnutým debug módem.

Děkuji za tipy,
tu čistou akci a starší nette (mám tam teď 2.2.3) vyzkouším. I když vzhledem k tomu, že v nejnovějším nette sandboxu to fungovalo, tak to vidím spíš na to, že tam někam posílám ještě nějaký výstup.

Jak se dá zjistit, jestli posílám na výstup před redirectem nějaká data?
Output debugger? Nebo ještě něco jiného?

Azathoth
Člen | 495
+
0
-

Tak naprosto čistá akce také nefunguje.
Tak jsem chtěl spustit output debugger, abych si prohlédnul ty výstupy a při spuštěném output debuggeru vyskočí 502.
Ale když nahraji na ten hosting sandbox, tak tam funguje jak přesměrování, tak output debugger.

Editoval Azathoth (7. 9. 2014 10:08)

Azathoth
Člen | 495
+
0
-

Tak jsem odpojil celý model, celou aplikační logiku a všechny addony a rozšíření. A funguje to.
Tak jdu zjistit, co to shazuje, každopádně děkuji za rady.

radekBrno
Člen | 61
+
0
-

Mně se chyba „502 error, bad gateway“ vyskytovala v případě, když došlo k chybě v nějakém PHP skriptu a následně Apache vyhodil chybu a uzavřel spojení. Vyřešilo se to až restartem Apache.

Řešil jsem to s hostingem a nedokázali přijít na to, proč se tak děje. Nakonec aktualizovali nějaké balíky a už je to v pořádku.

Editoval radekBrno (7. 9. 2014 11:31)

Azathoth
Člen | 495
+
0
-

Zajímavé zjištění: při integraci kdyby/events (pouzew přidání řádku do extension a nahrání přes composer) každý druhý refresh stránky vyvolá 502 error.

Tomáš Jacík
Člen | 147
+
0
-

Zkus ještě mrknout zda nemáš někde otvírací tag jen <? a na hostingu ení shot_open_tag = Off. Tohle mi jednou dělalo nepředstavitelné problémy.

Azathoth
Člen | 495
+
0
-

Nakonec je vše vyřešeno. Na serveru byly špatně nastavené PHP direktivy a poté, co si s tím tamní administrátoři pohráli, vše běží hladce.

cubic
Člen | 45
+
0
-

Třeba to tady někomu pomůže. Nejen redirect. Při vypnutém debug mode se stránky občas přestanou generovat někde v polovině, do logu se nic neukládá (ani nette, ani server). Když zapnu debug mode, stránka se vygeneruje ok, ale zase chybí Tracy lišta, vygenerovaná opět jen částečně.
Nette 2.2, bylo mi technickou podporou doporučeno přepnout PHP z 5.5 na 5.4, pak že už to většinou lidem začne fungovat..

BlueSpirit
Člen | 8
+
0
-

Mám s active24 podobné problémy, přesně jak popsal cubic a ostatní. Stránky se zobrazují náhodně, někdy ob request – když se nezobrazí, tak po F5 zase ano, když smažu celý projekt a nahraju znova, nebo promažu cache, tak to chvíli jede a pak zase ne, k zešílení. Když zapnu debug mode, tak se také tracy vymaluje jen necelé.
Přitom na mém vývojovém linuxu mi to chodí jak hodinky.
Bohužel to není můj hosting, ale zákazníka, zkusím to pořešit s adminy, případně změním tu verzi PHP – až se dostanu do administrace.

Editoval BlueSpirit (20. 10. 2014 15:31)

cubic
Člen | 45
+
0
-

@BlueSpirit To přepnutí na 5.4 naštěstí opravdu pomohlo. Já ten hosting taky nevybíral…

Azathoth
Člen | 495
+
0
-

@BlueSpirit zkus je požádat, aby nastavili php direktivy, tak, jak je nastavili ostatním lidem, kteří mají nette a měli podobné problémy.
Sice to zní hloupě, ale mně to pomohlo a za pokus to stojí.

Azathoth
Člen | 495
+
+3
-

Tak jsem zjistil, čím to je. Problém dělal opcache.
Ten lze v .htaccess vypnout tímhle řádkem:
php_flag opcache.enable Off

dehiver
Člen | 1
+
0
-

@Azathoth teď si pomohl i mně. Také jsem používal nette sandbox na active24 hostingu. Při lokálním testování na Apache nebyl jediný problém.

Při ostrém provozu mi ale stránky poměrně často vyhazovaly chybu 50×. Po refreshi chyba na nějakou dobu zmizela. Zjistil jsem, že za to můžou nette cache, protože jakmile jsem je ze serveru smazal, naprosto všechny stránky tuhle chybu začly generovat, dokud jsem je nerefreshnul, ale neměl jsem nejmenší tušení jak to opravit. Tenhle jediný řádek v .htaccess problém nadobro vyřešil, děkuju :)

Editoval dehiver (11. 8. 2015 20:12)