Wedos – login – cache problem

motorcb
Člen | 551
+
0
-

Zdar,

řeším divný problém… Mám testovací web u Wedos hostingu (NoLimit extra). Web funguje. Přihlásím se a jdu přihlášený na homepage, kde ovšem web zobrazuje že nejsem přihlášený. Pokud refreshnu stránku F5 stále nejsem přihlášený. Pokud refreshnu stránku CTRL+F5 už je vše správně a jsem přihlášený.
U Wedos jsem vypnul všechny cache (apc, eaccelerator, xcache). Problém nastává po několika hodinách po nasazení. Nasadím web, smažu cache, funguje. Po několik hodinách se chci znovu přihlásit a některé stránky zobrazují, že nejsem přihlášený. Pokud ale na této stránce máčknu CTRL+F5 funguje správně… Nerozumím tomu.

Do šablony jsem si začal posílat:

	public function startup()
	{
		parent::startup();
		$this->template->now = new Nette\Utils\DateTime();
	}

vypisovat:

{if isset($now)}{$now}{else}neni datum{/if}*
{if isset($user)}{$user->isLoggedIn()}{else}neprihlasen{/if}

Tyto problémové stránky nezobrazují aktuální datum (starý čas) a ani neukazují, že uživatel je přihlášený.

Poslední stabilní Nette 2.4
PHP 7.1

Tuší někdo kde by mohl být problém, nebo co zkusit?

Editoval motorcb (20. 11. 2018 8:50)

Phalanx
Člen | 310
+
0
-

Neposílá třeba server nějaké hlavičky pro kešování (ETag, Cache-Control, …)? Dělá ti to ve všech prohlížečích?

motorcb
Člen | 551
+
0
-

@Phalanx

Dělá to Chrome i Firefox. Hlavičky odpovědi na problémové stránce:

age: 171
cache-control: max-age=300
content-encoding: gzip
content-length: 4282
content-type: text/html; charset=utf-8
date: Tue, 20 Nov 2018 08:21:20 GMT
expires: Tue, 20 Nov 2018 08:26:20 GMT
server: ATS/8.0.0
vary: X-Requested-With,Accept-Encoding
X-Firefox-Spdy: h2
x-frame-options: SAMEORIGIN
x-powered-by: Nette Framework

Rozum tomu správně, že se stránky nacachovaly na 5 minut? Od 08:21:20 do 08:26:20?
Tuto hlavičku expires: Tue, 20 Nov 2018 08:26:20 GMT přidává Nette? Nebo hosting? Je možné ji v Nette odebrat?

Editoval motorcb (20. 11. 2018 9:43)

CZechBoY
Člen | 3608
+
-2
-

Nette samo zadny hlavicky nepridava. Mrkni do htaccess pripadne nejaky dalsi nastaveni webhostingu…

Ondřej Kubíček
Člen | 494
+
+4
-

CZechBoY napsal(a):

Nette samo zadny hlavicky nepridava. Mrkni do htaccess pripadne nejaky dalsi nastaveni webhostingu…

no minimálně powered by :D

Karlito
Člen | 18
+
0
-

Sice už je to staré, ale narazil jsem na stejný problém a mělo by to být kvůli té proxy co píše Václav Pávek
Tedy doporučuje se vypnout

# DISABLE CACHING
<IfModule mod_headers.c>
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires 0
</IfModule>
Karlito
Člen | 18
+
+1
-

Chvíli jsem si s tím hrál a zjistil jsem, že se tímto vypne cache prohlížeše pro js, styly, fonty apod.
Tedy jsem provedl následující úpravu .htaccess (vypl jsem cache jen pro php), to si řeší nette samo ;) a je tam i nějaká logika, co proxy nemá, tedy to vidím takto

# UPDATE CACHING
<IfModule mod_headers.c>
	<FilesMatch ".(php)$">
		Header set Cache-Control "no-cache, no-store, must-revalidate"
		Header set Pragma "no-cache"
		Header set Expires 0
	</FilesMatch>
</IfModule>
<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresByType font/ttf	"access plus 1 month"
  ExpiresByType font/woff	"access plus 1 month"
  ExpiresByType image/svg+xml	"access plus 1 month"
  ExpiresByType image/gif	"access plus 1 month"
  ExpiresByType image/x-icon	"access plus 1 month"
  ExpiresByType text/css	"access plus 1 month"
  ExpiresByType text/javascript	"access plus 1 month"
  ExpiresByType application/javascript		"access plus 1 month"
  ExpiresByType application/x-javascript	"access plus 1 month"
</IfModule>

Třeba to někomu pomůže :) … kdyby jste viděli nějaké úskalí, které přehlížím, dejte vědět :)

Editoval Karlito (6. 3. 2021 12:28)