2009-04-08 9 views
4

Ich habe eine Website, die in dem Sinne dynamisch ist, dass viele Daten aus einer Datenbank generiert werden, aber der Inhalt der Datenbank ändert sich selten (etwa 1-3 mal eine Woche). Diese Änderungen sind manuell und kontrolliert.Der beste Weg, statische Version der "dynamischen" Website zu generieren

Anstatt den Overhead einer dynamischen Website zu verwenden, verwende ich lieber statische Seiten. Ich debattieren, was die beste Lösung ist:

curl/wget/Spinne

Dieses question es erwähnt. Die Nachteile sehe ich könnte sein:

  • Handbuch benötigt aufzuräumen (Links, Bilder fehlen, etc.)
  • können statische und dynamische Seiten nicht mischen

Proxy

ich konnte Verwenden Sie einen Proxy, um die statischen Seiten für eine bestimmte Anzahl von Tagen zwischenzuspeichern. Nachteile:

  • schwer, den Cache von jeder Seite
  • müssen leeren Sie den Cache nach jeder manuellen Änderung zu verwalten?

Verwenden Programm zu statischen Seiten

Meine aktuelle Auswahl erzeugen: Ich Perl-Programme verwenden statische Seiten von dynamischen Inhalten zu generieren. Dies skaliert nicht sehr gut, da ich viel HTML hart codieren muss, vor allem die Seitenstruktur

Andere Möglichkeiten, es zu tun? Was würdest/bevorzugst du?

Antwort

4

Memcache-Basis ganzseitiger Cache mit langer Verfallszeit. Tag extension könnte Ihnen erlauben, nur ausgewählte Seitenbereiche ungültig zu machen.

+0

Was würden Sie verwenden, um Seiten aus Memcache zu bedienen? – Julien

+0

Der nginx Webserver unterstützt Memcache. Die Verwendung eines Skripts ist immer eine Option. – epochwolf

+0

@Julien: Über alles.Was verwendest du für dynamische Seiten? – vartec

2

Gibt es einen bestimmten Grund, warum Sie es auf diese Weise tun möchten, anstatt nur eine database caching Lösung einzurichten, um die Abfragen zu stoppen, die Datenbank tatsächlich zu treffen?

Ob es möglich ist oder nicht hängt davon ab, wie viele dynamische Daten auf Ihrer Site gespeichert sind und wie viel Speicher auf Ihrem Server verfügbar ist, aber Sie haben keine Probleme.

1

Ich würde es genauso machen, wie Sie es gerade tun, mit einem Skript, um statische Seiten zu generieren. Sie können ein Templating-System verwenden, um nicht jedes Mal neues HTML schreiben zu müssen.

0

Sie haben nicht erwähnt, wie wichtig es ist, die geänderten Daten so schnell wie möglich Ihrem Benutzer anzuzeigen.

Wir haben den Proxy-Cache erfolgreich für unsere Website verwendet, um dynamische Seiten zu verwalten, die viele Treffer erhalten. Abhängig davon, wie schnell die aktualisierten Daten vom Kunden gesehen werden sollen, haben wir für jede Kategorie ein unterschiedliches Cache-Alter beibehalten.

Verwandte Themen