33 geniale Contao-Erweiterungen, die du kennen solltest! - Contao Academy
Ergebnis 1 bis 6 von 6

Thema: Contao Cache immer "private", kein public/shared Cache möglich?

  1. #1
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.095
    User beschenken
    Wunschliste

    Trauriges Gesicht Contao Cache immer "private", kein public/shared Cache möglich?

    Ich habe das Problem, das Contao 4.8.4 nie! den Public/Shared Cache füllt. (Lokale Installation mit Apache)
    Um alle Störenfriede auszuschließen, habe ich ein Layout angelegt wo nur ein Artikel definiert ist und dort eine leere Seite. (mit Privat 5 Sekunden und Shared 30 Minuten)
    Damit ist also nichts drin was das ganze beeinflussen könnte, trotzdem immer "private" und "miss".
    Code:
    Cache-Control: max-age=5, private, s-maxage=1800
    Contao-Cache: miss
    Vary: Accept-Encoding
    Jemand ne Idee?

    Nachtrag: nein ich teste das nicht mit F5 oder Reload, ich klicke zwischen zwei leeren Seiten immer hin und her.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  2. #2
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.095
    User beschenken
    Wunschliste

    Standard

    Was mich wundert, wenn ich Private Cache auf 0 setze, kommt:
    Code:
    Cache-Control: private, s-maxage=1800
    Contao-Cache: miss
    Es werden auch keine html Seiten im Cache abgelegt, nur kleine ~35 Byte kleine Dateien die mit HTML nichts zu tun haben.


    Nachtrag: Es werden keine Cookies mitgesendet.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.095
    User beschenken
    Wunschliste

    Standard

    Jetzt wird es seltsam. Ich mache mit wget auf Kommandozeile die Testaufrufe und habe EventListener/MakeResponsePrivateListener.php dabei debuggt.
    Hier wird setPrivate() bei mir aufgerufen:
    Code:
            // 1) An Authorization header is present
            if ($request->headers->has('Authorization')) {
                $response->setPrivate();
    
                return;
            }
    https://github.com/contao/core-bundl...stener.php#L45

    Warum wird hier eine Authorization festgestellt? Das ist doch falsch, oder?
    Geändert von BugBuster (19.10.2019 um 22:41 Uhr)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  4. #4
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    13.968
    User beschenken
    Wunschliste

    Standard

    Versuch mal, im Browser explizit alle Cookies für diese Domain zu löschen.
    Contao Community Administrator
    [Unterstützungsmöglichkeiten]

  5. #5
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.095
    User beschenken
    Wunschliste

    Standard

    Alles schon getestet. Wenn ich per wget teste, da gibt es keine Cookies oder ähnliches.

    Aber, die Ursache ist bei mir die .htaccess die Contao mitbringt!
    Die Zeilen:
    Code:
        # Sets the HTTP_AUTHORIZATION header removed by Apache
        RewriteCond %{HTTP:Authorization} .
        RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    setzten den Header, obwohl der gar nicht gesetzt sein sollte, da er keinen Inhalt hat.

    Kommentiere ich die beiden Zeilen aus ist alles OK, es wird gecached.

    Ich habe einen PR auf GitGub gefunden, da wurde auch bei Symfony drauf hingewiesen (in der ServerBag.php als Kommentar)
    https://github.com/symfony/symfony/pull/3551/files

    Dort wurde nur eine Zeile erwähnt:
    Code:
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    Damit funktioniert es bei mir.

    Später wurde das auf zwei Zeilen angepasst (zumindest bei mir aktuell in der ServerBag.php)
    Code:
    RewriteCond %{HTTP:Authorization} ^(.+)$
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    Damit funktioniert es nicht mehr bei mir.

    Damit hätten wir nun also drei Varianten wovon eine zumindest bei mir funktioniert bzw. durch löschen der Zeilen aus der .htaccess.
    Nachteile habe ich bisher nicht feststellen können.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  6. #6
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.095
    User beschenken
    Wunschliste

    Standard

    Leider nur die halbe Miete.
    Lokal mit COD funktioniert das, auf meinem Server reicht das nicht, da scheinen die Header gesetzt zu sein ob ich will oder nicht.
    Also will ich nicht, daher habe ich in der index.php zu Anfang reingesetzt:
    Code:
    if (isset($_SERVER['HTTP_AUTHORIZATION']) && (strlen($_SERVER['HTTP_AUTHORIZATION']) == 0))
    {
        unset($_SERVER['HTTP_AUTHORIZATION']);
    }
    Das ist natürlich nicht updatesicher, klaro, aber erstmal geht es (bei mir).
    Geändert von BugBuster (20.10.2019 um 22:25 Uhr)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •