Skip to content

Regelübersicht

Regeln sind leistungsstarke Werkzeuge zur Anpassung der Traffic-Verarbeitung durch smoxy für eine Zone. Damit lässt sich das Verhalten von smoxy für bestimmte URLs, Bedingungen oder Sicherheitsszenarien ändern, ohne die Basiskonfiguration der Zone anzupassen. Regeln laufen an einem festen Punkt im Anfrageablauf — das große Ganze zeigt der Lebenszyklus einer Anfrage.

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 3 Regeltypen

smoxy bietet drei Regeltypen, die jeweils für bestimmte Anwendungsfälle konzipiert sind:

RegeltypIdeal fürAbgleich basierend aufAusführungsverhalten
Access RulesSicherheit & ZugriffskontrolleUmfangreiche Bedingungen (IP, Land, Header usw.)Läuft zuerst, vor allem anderen
Rewrite RulesURL-Umschreibung & WeiterleitungenURL-MusterLäuft als zweites, nginx-artige Umschreibung
Conditional RulesKomplexe Logik & BedingungenUmfangreiche Bedingungen (IP, Land, Header usw.)Läuft als drittes (letztes), 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)
  • Teilen sich ein gemeinsames Regelbudget pro Zone mit Access und Conditional Rules (Standard: 30 Regeln insgesamt)
  • 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. 1
    Access Rules
    Sicherheitsebene · Traffic blockieren, herausfordern oder whitelisten · alle passenden Regeln werden angewendet (außer Stop ist aktiviert)
  2. 2
    Rewrite Rules
    URL-Umschreibung · schreibt die URL um, wenn Treffer · erster Treffer gewinnt
  3. 3
    Conditional Rules
    Bedingungsabgleich · alle passenden Regeln werden angewendet (außer Stop ist aktiviert)
Antwort

Innerhalb jedes Typs werden Regeln nach ihrer Position ausgewertet (1, 2, 3, ...).

Innerhalb 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.

Eine detaillierte Betrachtung, wie Regeln typübergreifend und innerhalb eines Typs ausgewertet werden, findet sich unter Ausführung & Reihenfolge.

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 ganz am Anfang der Regel-Pipeline 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 Zone überschreiben.

Das bedeutet, jede für die Zone 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-Minifizierung
  • Erweitert: Wartungsmodus, Debug-Header, SSI/ESI

Best Practices

  1. Mit Access Rules für Sicherheit beginnen: Whitelist-Regeln (Allow/Skip) immer zuerst definieren, dann Block/Challenge-Regeln hinzufügen
  2. Rewrite Rules früh einsetzen: URL-Umschreibungen erfolgen bevor Conditional Rules ausgewertet werden, entsprechend planen
  3. Conditional Rules für komplexe Logik einsetzen: Wenn mehrere Bedingungen benötigt werden oder mehrere Regeln angewendet werden sollen
  4. Mit Debug-Headern testen: Debug-Header aktivieren um zu sehen, welche Regeln auf Anfragen angewendet werden
  5. Reihenfolge ist wichtig: Die Position/Reihenfolge der Regeln prüfen – besonders wichtig bei Access und Conditional Rules