Zum Inhalt springen

Caching-Probleme und ReDirections

Erstellt am 7. Januar 2006 · 3 Antworten · letzte Antwort am 15. Januar 2006

Tags: tt_news, Frage

Zani ·

Hallo zusammen,

ich habe mit Typo 3.8.0 auf einem Linux-System (2.3 GHz und 2 GB Ram) den Auftritt der www.torfabrik.de realisiert. In Benutzung sind allen voran die EXT tt_news und ein paar kleiner andere (autotempl, HTML-Area RTE, mailformplus...).

Jetzt habe ich auf der Startseite tonnenweise News aus unterschiedlichen SysOrdner mittels TS eingebunden. Dazu den Debug eingestellt und sehe im Quelltext unten, wann der Cache generiert wurde und abläuft (alles über TS).

Leider ist wird der Cache fast minütlich, teilweise aber auch nur maximal alle 5 Minuten neu generiert, obwohl keine News etc. hinzugefügt wurden.

Ferner habe ich gleiches Template einen Pfad tiefer (STARTSEITE <- in der linken Navigation) und dort hält sich das Cache-generierte Dokument. SIeht man am Debugging.

Auszug aus dem Template:

Constants (einziger Eintrag)

plugin.tt_news.allowCaching = 1

Setup

### Konfiguration Sprache
#########################
config {
  sys_language_uid = 0
  language = de
  locale_all = german
  locale_all = de_DE.ISO8859-1
}

### Allgemeine Grundkonfiguration
#################################

# DELETE CLASS "bodytext" FROM p-TAG
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class >

config {
  cache_period >
  cache_period = 86400
  cache_clearAtMidnight = 1
  doctype = xhtml_trans
  xhtml_cleaning = all
  headerComment = TORfabrik.de | Das Web-Magazin (programmed by Olaf Kozany - www.kozany.com)
  extTarget = _blank
  removeDefaultJS = true
  simulateStaticDocuments=1
  simulateStaticDocuments_pEnc=md5
  # displays 22 chars of the page title
  simulateStaticDocuments_addTitle=22
  # include the GET parameters from tt_news to the encoded vars (all in one line)
  simulateStaticDocuments_pEnc_onlyP = cHash, L, print, tx_ttnews[backPid], tx_ttnews[tt_news], tx_ttnews[pS], tx_ttnews[pL], tx_ttnews[arc], tx_ttnews[cat], tx_ttnews[pointer], tx_ttnews[swords]
}

### Allgemeine Seitenkonfiguration
#################################
page {
  shortcutIcon = fileadmin/layout/favicon.ico
}

### Konfiguration tt_news-Plugin
################################
plugin.tt_news { 
  _LOCAL_LANG.de {
    preAuthor = von
    more = <strong class="orange">&raquo;</strong>
  }

  templateFile = fileadmin/magazin/template/tmp_ttnews_home_v2.html
  pid_list = 11,24,25,26,31,62,68,69
  singlePid = 57
  limit = 1

[...]

### Aufbau der PAGE (Seite)
###########################
page = PAGE
page.typeNum = 0
page.config.debug = 1
 
# Copying the content from TEMPLATE for <head>-section:
page.headerData.10  < temp.headTemplate

page.20 = TEMPLATE
# page.20.marks.PAGE_UID = TEXT
# page.20.marks.PAGE_UID.field = uid
page.20  {
   template = FILE
   template.file = fileadmin/magazin/template/tmp_home.html
   workOnSubpart = DOCUMENT_BODY
    # Substitute the ###menu_1### subpart with dynamic menu:
   subparts.menu_1 < temp.menu_1
    # Substitute the ###content### subpart with some example content:
   subparts.content < styles.content.get
    ###TIPPSPIEL im Topbanner einbinden
   subparts.TOPBANNER_TIPPSPIEL < tmp.TOPBANNER_TIPPSPIEL
    ###Galerie im Topbanner einbinden
   subparts.TOPBANNER_GALERIE < tmp.TOPBANNER_GALERIE
    ###TOPIMAGE EINBINDEN
   subparts.TOPIMAGE < tmp.TOPIMAGE
    ###TOPWRAPPER_MORE EINBINDEN
   subparts.TOPWRAPPER_MORE < tmp.TOPWRAPPER_MORE
    ###WORTKURVE EINBINDEN
   subparts.WORTKURVE < tmp.WORTKURVE
    ###KARIKATUR EINBINDEN
   subparts.KARIKATUR < tmp.KARIKATUR
    ###SPECIAL EINBINDEN
   subparts.SPECIAL < tmp.SPECIAL
    ###PRESSING EINBINDEN
   subparts.PRESSING < tmp.PRESSING
    ###PRESSING-ABSEITS EINBINDEN
   subparts.PRESSING-ABSEITS < tmp.PRESSING-ABSEITS
    ###PRESSING-BMG EINBINDEN
   subparts.PRESSING-BMG < tmp.PRESSING-BMG
    ###NEWSU23HOME EINBINDEN
   subparts.NEWSU23HOME < tmp.NEWSU23HOME
    ###NEWSEINWURFHOME EINBINDEN
   subparts.NEWSEINWURFHOME < tmp.NEWSEINWURFHOME
    ###NEWSQUERPASSHOME EINBINDEN
   subparts.NEWSQUERPASSHOME < tmp.NEWSQUERPASSHOME

Include Static:
language.de
content (default)

Include Static (from EXT):
CSS-Styled Content (css_styled_content)
CSS-based templ (tt_news)

Im Dokument ID1 ist das Caching auf "Standard" eingestellt, verschiedene SysOrdner haben innerhalb der TSconfig nur folgendes stehen:

TCEMAIN.clearCacheCmd = 1,8,37

Warum bleibt der Cache also nicht länger erhalten?

Besserungen fanden zum Beispiel statt, als ich die Typo Datenbank einfach mal kopiert habe (INDEX kaputt?), die originale umbenannt und die Kopie zur ProduktionsDB ernannte. Wenigstens cached seitdem die Startseite mal ein paar Minuten, mehr aber auch nicht.

Zu guter Letzt habe ich teilweise, allen voran in den Spitzenzeiten (100-200 User gleichzeitig auf der Page) eine defekt generiert Startseite.

Dann erscheint in der URL hinter www.torfabrik.de:

/_vti_bin/uploads/pics/uploads/pics/uploads/pics/...

oder

/MSOffice/uploads/pics/uploads/pics/.... (s.o.)

Da ich weder ne Frontpage Extension aufm Server habe oder Seite mit diesem Tool generiere, verstehe ich nicht, woher die Dinger kommen (achtung, laienhaft: Hacker-Angriffe?)

Gebe ich zum Beispiel www.torfabrik.de/irgendwas/irgendwo ein, dann komme ich zum selbigen Problem. DIe Einbindung von EXT:error_404_handling brachte gar nix ein, wobei ich ehrlich gesagt hier noch nicht so eingearbeitet bin.

Das Problem, in Spitzenzeiten geht mein Load bei auftretenden Fehlern (_vti_bin) von durchschnittl. 1 bis 2.5 auf über 15 hoch und legt für knappe 5 Minuten meinen Server lahm.

Ergo - hat hier jemand eine Ahnung, welches Schräubchen man noch drehen muss?

Meine Lösung: Ich probiere gerade eine Neuinstallation unter Typo 3.8.1 inkl. neuer DB aus, stelle die jetzige Seite im Sparmodus nach und legen dann den Traffic auf das neue System. Vielleicht hats ja wirklich meine DB abgeschossen.

Lediglich das _vti_bin-Problem werde ich wohl so nicht abfangen können.

Über eventuelle Anteilnahme (*g*) oder Lösungsvorschläge würde ich mich sehr freuen.

Indes noch ein schönes Wochenende
Olaf Kozany

woida ·

Da ich weder ne Frontpage Extension aufm Server habe oder Seite mit diesem Tool generiere, verstehe ich nicht, woher die Dinger kommen (achtung, laienhaft: Hacker-Angriffe?)

Genau. Da hat ein Pseudo-Hacker ein Tool, das daß Internet auf bekannte Schwachstellen in Microsoft Produkten durchsucht. Außer dem hohen Load richtet es aber keinen Schaden an.
Verhindern kannst du den Scan nicht, ich hab aber per ModRewrite einen Redirect angelegt. Jeder der so eine Seite anfordert landet dann auf 127.0.0.1 und verursacht so bei mir nicht allzu große Ressourcenverschwendung, da Typo gar nicht zum Zug kommt.

Zani ·

Hallo zusammen und herzlich nochmal ein Hallo an woida ;o)

kurze Zusammenfassung:

Nachdem ich Depp mal die .htaccess ein wenig angepasst habe, war mein "_vti_bin"-Problem auch endlich gelöst. Zumindest spuckt der Server jetzt bei komischen URLs (www.torfabrik.de/kjdhfkjh/kjdh) einen Fehler aus und generiert nicht mehr die Startseite.

Dies führte sogar dazu, dass die Startseite oder überhaupt die TORfabrik.de wesentlich performanter lief. Leider schnackelt das "404_error_handling" absolut nicht. Der fliegt, wenn ich mal aufn Server schau, immer bei mysql_pconnect als auch bei mysql_connet auf die Nase. Aber das Problem wurde erst einmal zurückgestellt. Baue per .htaccess nun eine andere Lösung ein.

Wichtigste Prio hatte ganz klar das Caching. Hier gab es kleine bis mittelgroße Änderungen an der TS-Programmierung meines Root-Templates, bei dem ich "Funktionen", die sich doppelten, einfach mal sauber heruntergeschrieben haben. Ergebnis: Caching hielt permanent stolze 60 bis 120 Sekunden.

Also habe ich via SSH mal flugs das gesamte Typo-Verzeichnis kopiert, einen Dump der Datenbank gemacht und unter einer Entwicklungsumgebung von Typo 3.8.0 auf 3.8.1 (FIX: SHIFT-RELOAD bei FE-User, keine Ahnung ob Zusammenhang besteht) migriert.

Dann den Apache nach ordentlichen Tests runnergefahren, Verzeichnisse des Live- und Entwicklungssystems gespiegelt und siehe da: ES LÄUFT!

Der Debug-Mode auf der Startseite (gaaaanz unten im Quelltext) hält das Caching-Datum. Obs an der Migration oder wie von mir vermutet defekten DB lag - keine Ahnung.

Cachingdokument wurde nur einmal erstellt, läuft gegen Mitternacht ab und tonnenweise User haben daran nix geändert.

Die Generierzeit lag immer bei 80 bis max 300 ms. Also nochmal flott den eAccelerator installiert und alles pendelt sich zwischen 10-20ms ein.

Problem gelöst, würde ich zumindest nach den letzten 1 1/2 Tagen sagen. Wo genau der Fehler war, weiß ich leider nicht 🙂 Bin dennoch zufrieden.

Nice Weekend - ok

*edit - 21:54 Uhr*
Der Load meiner Seite verringerte sich von Durchschnittlich 1 bis 2 auf sage und schreibe 0,2! Das ist unglaublich, aber ablesbar ;o)
*edit - end*

woida ·

Hab da noch 2 Sachen für dich:
Wenn du mehrere Rewrite-Regeln hast, sollten die in die Konfiguration des vHosts, da sie dann schneller ausgeführt werden können als in der .htaccess.

Bezüglich des "404_error_handling": Das soll ja nicht mit SimulateStatic funktionieren. Schau dir vielleicht mal folgenden Thread an: #32947