Regelübersicht
Regeln sind leistungsstarke Werkzeuge zur Anpassung der Traffic-Verarbeitung durch smoxy für eine Site. Damit lässt sich das Verhalten von smoxy für bestimmte URLs, Bedingungen oder Sicherheitsszenarien ändern, ohne die Basiskonfiguration der Site anzupassen.
Was sind Regeln?
Regeln lassen sich als "Wenn-Dann"-Anweisungen für das CDN verstehen:
- WENN eine Anfrage bestimmte Kriterien erfüllt (ein URL-Muster, eine IP-Adresse, ein geografischer Standort usw.)
- DANN ändere das Verhalten von smoxy (Caching anpassen, zu anderen Servern weiterleiten, Zugriff blockieren usw.)
Regeln bieten detaillierte Kontrolle darüber, wie smoxy jede Anfrage verarbeitet, und ermöglichen ausgefeilte Routing-, Caching- und Sicherheitsrichtlinien.
Die 4 Regeltypen
smoxy bietet drei Regeltypen, die jeweils für bestimmte Anwendungsfälle konzipiert sind:
| Regeltyp | Ideal für | Abgleich basierend auf | Ausführungsverhalten |
|---|---|---|---|
| Access Rules | Sicherheit & Zugriffskontrolle | Umfangreiche Bedingungen (IP, Land, Header usw.) | Läuft zuerst, vor allem anderen |
| Rewrite Rules | URL-Umschreibung & Weiterleitungen | URL-Muster | Läuft als zweites, nginx-artige Umschreibung |
| Conditional Rules | Komplexe Logik & Bedingungen | Umfangreiche Bedingungen (IP, Land, Header usw.) | Alle passenden Regeln werden angewendet |
Schnellvergleich
Access Rules vs Conditional Rules:
- Beide nutzen umfangreichen Bedingungsabgleich (IP, Land, Header, Cookies usw.)
- Access Rules sind für Sicherheit (blockieren, herausfordern, whitelisten) und laufen zuerst
- Conditional Rules sind für Konfigurationsänderungen (Caching, Routing, Header) und laufen später
Rewrite Rules:
- Spezialisiert auf URL-Umschreibung (wie nginx Rewrite-Regeln)
- Begrenzt auf 5 Regeln pro Site
- Läuft als zweites in der Reihenfolge (nach Access Rules, vor Conditional Rules)
Ausführungsreihenfolge
Regeln werden bei jeder Anfrage in einer bestimmten Reihenfolge ausgewertet:
Eingehende Anfrage
|
1. Access Rules (Sicherheitsebene)
- Position 1, 2, 3... (der Reihe nach)
- Traffic blockieren, herausfordern oder whitelisten
- Alle passenden Regeln werden angewendet (außer "Stop" ist aktiviert)
|
2. Rewrite Rules (URL-Umschreibung)
- Position 1, 2, 3... (der Reihe nach)
- Schreibt URL um, wenn Treffer
|
3. Conditional Rules (Bedingungsabgleich)
- Position 1, 2, 3... (der Reihe nach)
- Alle passenden Regeln werden angewendet (außer "Stop" ist aktiviert)
|
AntwortInnerhalb jedes Regeltyps
Regeln desselben Typs werden basierend auf ihrer Position (auch Priorität oder Reihenfolge genannt) ausgewertet:
- Position 1 wird zuerst ausgewertet
- Position 2 wird als zweites ausgewertet
- Und so weiter...
Regeln lassen sich jederzeit per Drag-and-Drop im smoxy Hub neu anordnen.
Wann welchen Regeltyp verwenden
Access Rules verwenden wenn:
- verdächtiger Traffic blockiert oder herausgefordert werden soll
- vertrauenswürdige IPs auf eine Whitelist kommen sollen (Sicherheitsprüfungen überspringen)
- die WAF umgangen werden muss für bestimmte Anfragen (z. B. interne Tools)
- Sicherheitsentscheidungen vor jeder anderen Verarbeitung getroffen werden müssen
Beispiel: Alle Anfragen aus einem bestimmten Land blockieren, außer von der Büro-IP.
Rewrite Rules verwenden wenn:
- URLs umgeschrieben werden müssen (wie nginx Rewrite-Regeln)
- URL-Normalisierung oder Weiterleitungen durchgeführt werden
- Legacy-URL-Unterstützung oder saubere URL-Strukturen benötigt werden
- URL-Transformationen vor der Auswertung anderer Regeln stattfinden müssen
Beispiel: /alter-pfad zu /neuer-pfad umschreiben, oder URLs für besseres Caching normalisieren.
Conditional Rules verwenden wenn:
- unterschiedliche Einstellungen für verschiedene URLs benötigt werden
- komplexe Bedingungen benötigt werden (IPs, Länder, Header, Cookies usw.)
- mehrere Regeln auf dieselbe Anfrage angewendet werden sollen
- erweiterte Logik benötigt wird (UND/ODER-Kombinationen)
- Verschiedene Bedingungen unterschiedliche Konfigurationen erfordern
Beispiel: Höhere Bildqualität für Nutzer aus Europa bereitstellen, Basic Auth für Nicht-Büro-IPs aktivieren und mobilen Traffic anders routen.
Beispiel: Caching für /admin/* URLs deaktivieren, oder /api/* zu einem anderen Load Balancer routen.
Einstellungen: Jede smoxy-Konfiguration überschreiben
Conditional Rules können JEDE Einstellung aus der Konfiguration der Site überschreiben.
Das bedeutet, jede für die Site festgelegte Konfiguration (Caching, Bildoptimierung, Load Balancing, Sicherheit, Header usw.) kann durch eine Regel für bestimmte Anfragen überschrieben werden.
Verfügbare Einstellungen umfassen:
- Routing: Verschiedene Origins oder Load Balancer auswählen
- Caching: Cache-TTL, Cache-Keys, Cache-Tags steuern
- Bildoptimierung: AVIF, WebP, JPEG, PNG Qualitätsstufen
- Sicherheit: WAF, Basic Auth, benutzerdefinierte Fehlerseiten aktivieren/deaktivieren
- Header: Request/Response-Header hinzufügen, ändern oder entfernen
- Optimierung: HTML/JS/CSS-Minifizierung
- Erweitert: Wartungsmodus, Debug-Header, Proxy-Timeouts, SSI/ESI
Best Practices
- Mit Access Rules für Sicherheit beginnen: Whitelist-Regeln (überspringen/fortfahren) immer zuerst definieren, dann Block/Challenge-Regeln hinzufügen
- Rewrite Rules früh einsetzen: URL-Umschreibungen erfolgen bevor Conditional Rules ausgewertet werden, entsprechend planen
- Conditional Rules für komplexe Logik einsetzen: Wenn mehrere Bedingungen benötigt werden oder mehrere Regeln angewendet werden sollen
- Mit Debug-Headern testen: Debug-Header aktivieren um zu sehen, welche Regeln auf Anfragen angewendet werden
- Reihenfolge ist wichtig: Die Position/Reihenfolge der Regeln prüfen – besonders wichtig bei Access und Conditional Rules
