Oversigt #
Denne artikel forklarer, hvordan man migrerer en F5 BIG-IP iRule, der sender flere applikations-URI'er til den samme backend-pool. RELIANOID ved hjælp af native HTTP/S farm-tjenestematchning og regulære udtryk (regex) URI-mønstre.
Den originale iRule evaluerer den indgående URI og sender trafik, der matcher flere applikationsstier, til den samme backend-pool.
Original F5 iRule #
når HTTP_REQUEST { switch -glob [string tolower [HTTP::uri]] { "/firstapp*" { pool "MY_POOL" } "/secondapp*" { pool "MY_POOL" } "/thirdapp" { pool "MY_POOL" } } }
Migrationsmål #
Formålet med denne konfiguration er:
- Match flere applikationsstier
- Send al matchende trafik til den samme backend-pool
- Forenkl applikationsroutinglogik
RELIANOID Migrationstilgang #
In RELIANOID, dette kan opnås uden scripting ved at bruge:
- Én enkelt HTTP/S-tjeneste
- URI-mønstermatchning
- Regulære udtryk (regex)
- Delt backend-konfiguration
Denne tilgang er enklere, renere og nemmere at vedligeholde end flere betingede iRules.
RELIANOID Konfiguration #
Naviger til Gårde > HTTP/S-gård > Tjenester og Opret en ny tjeneste.
URI-matchningskonfiguration #
I URL-mønsteret skal du bruge regex'en:
^/(firstapp|secondapp|thirdapp)
Backend-konfiguration #
Tilføj backend-listekonfigurationen i tjenesten.
Hvorfor denne tilgang anbefales #
Brug af en enkelt regex-baseret tjeneste giver:
- Rengøringskonfiguration
- Nemmere vedligeholdelse
- Reduceret antal tjenester
- Bedre skalerbarhed
- Forenklet fejlfinding
I stedet for at administrere flere iRule-betingelser er URI-logikken centraliseret i én matchende regel.
Validering #
Test med CURL. Eksempel:
curl -k https://example.com/firstapp -v
Eller:
curl -k https://example.com/secondapp/api/test -v
Forventet resultat:
- Anmodningen videresendes til den konfigurerede backend-pool
- Applikationen reagerer normalt
Fejlfinding #
Anmodninger matcher ikke #
Verificere:
- Regex-tilstand er aktiveret
- URI-mønsteret er korrekt
- Ingen skjulte mellemrum eller ugyldig regex-syntaks
Kun nogle applikationer virker #
Kontrollere:
- Regex indeholder alle nødvendige programnavne
- URI-adfærd med store bogstaver
RELIANOID Regex-matchning skelner mellem store og små bogstaver, medmindre andet er konfigureret.
Hvis der er behov for matchning uden forskel på store og små bogstaver, skal du bruge:
(?i)^/(firstapp|secondapp|thirdapp)
Trafik sendt til standardtjeneste #
Dette indikerer normalt:
- Regex-uoverensstemmelse
- Problem med bestilling af service
- Forskelle i URI-normalisering
Alternativ tilgang #
Selvom der også kan oprettes flere tjenester, anbefales dette generelt ikke, når:
- Alle applikationer deler den samme backend-pool
- Routinglogikken er identisk
En enkelt regex-baseret tjeneste er mere effektiv.
Best Practices #
- Gruppér lignende applikationer i delte tjenester, når det er muligt
- Brug regex omhyggeligt for at undgå utilsigtede matches
- Hold URI-matchningslogik centraliseret
- Dokumentér regex-regler for operationel synlighed
Resumé #
F5 iRules, der udfører URI-baseret poolvalg, kan migreres til RELIANOID ved hjælp af native HTTP/S-tjenestematchning med regex-mønstre.
Denne tilgang forenkler konfigurationen, samtidig med at den opretholder en tilsvarende applikationsroutingadfærd.