This commit is contained in:
Robin Grenzdörfer 2023-12-07 11:31:45 +00:00
parent 5c571b8ef3
commit bf5b258cd5

View File

@ -8,34 +8,34 @@ Diese Konfigurationsdatei ist für einen Apache Webserver bestimmt und beinhalte
## Konfigurationsdetails
- MIME-Type Definition für .mjs Dateien
* AddType application/javascript .mjs
* Diese Anweisung sorgt dafür, dass Dateien mit der Endung .mjs als JavaScript-Dateien (application/javascript) behandelt werden. Dies ist besonders nützlich für Module im ECMAScript-Format, die oft diese Endung verwenden.
- Default Directory Index
* DirectoryIndex noindex
* Legt noindex als Standard-Indexdatei fest, wenn ein Verzeichnis aufgerufen wird. Dies verhindert, dass Apache automatisch eine Datei wie index.html oder spa.html lädt, wenn keine spezifische Datei in der URL angegeben ist.
- mod_rewrite Konfiguration
* <IfModule mod_rewrite.c>
* Diese Sektion ist nur aktiv, wenn das mod_rewrite-Modul verfügbar ist. mod_rewrite ermöglicht die Umleitung und Umformung von URLs.
* RewriteEngine On
* Aktiviert die Umleitungsfunktionen von mod_rewrite.
* RewriteBase /
* Setzt den Basispfad für Rewrite-Regeln auf das Wurzelverzeichnis.
- API-Umleitung
* RewriteRule ^/?api/(.*)$ http://tibi-server:8080/api/v1/_/vde8_tibi_2023/$1 [P,QSA,L]
* Leitet Anfragen, die mit /api/ beginnen, an einen anderen Server (tibi-server) um. Behält den Rest des Pfades bei und fügt ihn an den Ziel-URL an. Die Flags bedeuten:
* [P] Proxy: Die Anfrage wird intern an den angegebenen Server weitergeleitet.
* [QSA] Query String Append: Erhält bestehende Query-Parameter.
* [L] Last: Keine weiteren Regeln werden verarbeitet, wenn diese Regel greift.
- Fallback für Nichtexistierende Dateien/Verzeichnisse
* RewriteCond %{REQUEST_FILENAME} !-f und RewriteCond %{REQUEST_FILENAME} !-d
* Prüft, ob der angeforderte Pfad weder einer existierenden Datei noch einem Verzeichnis entspricht.
* RewriteRule ^/?(.*)$ http://tibi-server:8080/api/v1/_/vde8_tibi_2023/ssr?token=XYZ&url=/$1 [P,QSA,L]
* Leitet Anfragen, die nicht existierenden Dateien/Verzeichnissen entsprechen, an einen Server-seitigen Rendering-Prozess weiter. Nützlich für SPAs, wo die URL-Verarbeitung auf dem Client stattfindet.
* token=XYZ muss an den SSR_TOKEN angepasst werden (welcher auch in der server seinigen env steht.)
- Kommentierte Regel
* #RewriteRule (.*) /spa.html [QSA,L]
* Eine auskommentierte Regel, die alle Anfragen zu spa.html umleiten würde. Da sie auskommentiert ist, hat sie keinen Effekt.
- MIME-Type Definition für .mjs Dateien
- AddType application/javascript .mjs
- Diese Anweisung sorgt dafür, dass Dateien mit der Endung .mjs als JavaScript-Dateien (application/javascript) behandelt werden. Dies ist besonders nützlich für Module im ECMAScript-Format, die oft diese Endung verwenden.
- Default Directory Index
- DirectoryIndex noindex
- Legt noindex als Standard-Indexdatei fest, wenn ein Verzeichnis aufgerufen wird. Dies verhindert, dass Apache automatisch eine Datei wie index.html oder spa.html lädt, wenn keine spezifische Datei in der URL angegeben ist.
- mod_rewrite Konfiguration
- IfModule mod_rewrite.c
- Diese Sektion ist nur aktiv, wenn das mod_rewrite-Modul verfügbar ist. mod_rewrite ermöglicht die Umleitung und Umformung von URLs.
- RewriteEngine On
- Aktiviert die Umleitungsfunktionen von mod_rewrite.
- RewriteBase /
- Setzt den Basispfad für Rewrite-Regeln auf das Wurzelverzeichnis.
- API-Umleitung
- RewriteRule ^/?api/(.*)$ http://tibi-server:8080/api/v1/_/vde8_tibi_2023/$1 [P,QSA,L]
- Leitet Anfragen, die mit /api/ beginnen, an einen anderen Server (tibi-server) um. Behält den Rest des Pfades bei und fügt ihn an den Ziel-URL an. Die Flags bedeuten:
- [P] Proxy: Die Anfrage wird intern an den angegebenen Server weitergeleitet.
- [QSA] Query String Append: Erhält bestehende Query-Parameter.
- [L] Last: Keine weiteren Regeln werden verarbeitet, wenn diese Regel greift.
- Fallback für Nichtexistierende Dateien/Verzeichnisse
- RewriteCond %{REQUEST_FILENAME} !-f und RewriteCond %{REQUEST_FILENAME} !-d
- Prüft, ob der angeforderte Pfad weder einer existierenden Datei noch einem Verzeichnis entspricht.
- RewriteRule ^/?(.*)$ http://tibi-server:8080/api/v1/_/vde8_tibi_2023/ssr?token=XYZ&url=/$1 [P,QSA,L]
- Leitet Anfragen, die nicht existierenden Dateien/Verzeichnissen entsprechen, an einen Server-seitigen Rendering-Prozess weiter.
- token=XYZ muss an den SSR_TOKEN angepasst werden (welcher auch in der server seinigen env steht.)
- Kommentierte Regel
- #RewriteRule (.*) /spa.html [QSA,L]
- Eine auskommentierte Regel, die alle Anfragen zu spa.html umleiten würde. Da sie auskommentiert ist, hat sie keinen Effekt.
### Zusätzliche Hinweise
@ -50,15 +50,7 @@ Diese Konfigurationsdatei ist für einen Apache Webserver bestimmt und beinhalte
- Der originale Pfad wird als URL-Query-Parameter an die neue URL angehängt.
- Beispiel: Eine Anfrage an /dimitrisBuecher/veraltet wird umgeleitet, da die /api/ Rewrite-Regel nicht greift.
- Verarbeitung im Tibi-Server
- Der SSR-Hook beginnt mit der Extraktion der URL.
- Möglichkeit zur Unterbindung von Caching
- Implementierung eines Boolean-Feldes „Caching“ in der Content-Collection, um Caching zu steuern.
- URL-Normalisierung und Überprüfung in der SSR-Collection
- Überprüfung, ob die URL bereits in der SSR-Collection vorhanden ist.
- Für zeitlich begrenzte Sichtbarkeit von Seiten wird ein validUntil-Feld im Cache verwendet.
- Validierung des Pfades
- Überprüfung der Existenz der URL als Pfad in der Content-Collection.
- Rückgabewerte: -1 für 'not found', 0 für 'nicht cachbar', 1 für 'cachbar'.
- Gibt die Angefrage Seite zurück.
## Teil 3: Detaillierte Erklärung des Caching und Rendering-Prozesses im SSR-Kontext