
Let op: deze oplossing vereist een F5 BIG-IP Local Traffic Manager (LTM)-appliance
De iRule voor de online wachtkamer
Door een iRule (script) toe te voegen aan een Virtual Server op je F5 BIG-IP LTM, worden bezoekers boven het vooraf ingestelde maximum aantal verbindingen naar de virtuele wachtkamer geleid. Zo belasten bezoekers in de wachtkamer de backend-webservers niet meer.
Klik hier om de iRule te downloaden
Uitleg van de iRule
Controle op hostnaam

Op regel #5 wordt de variabele “host1” gedefinieerd, die op regel #6 wordt gebruikt. Pas je meerdere wachtkamer-iRules toe op dezelfde Virtual Server, dan moet deze variabelenaam in elke iRule uniek zijn.
Vul op regel #6 de domeinnaam in van de website waarop deze iRule van toepassing is. Wil je de iRule op meerdere domeinnamen toepassen, vervang die regel dan door de volgende regels:
if {
($host1 contains “your_website1.com”) ||
($host1 contains “your_website2.com”) ||
($host1 contains “your_website3.com”)
} {
Belangrijk: bij de laatste controle mag het OR-statement (“||”) niet aan het eind van de regel staan.
Unieke shortcode
Op regel #12 wordt een unieke shortcode-variabele (“OWR”) gedefinieerd met de waarde “SITE1”. Pas je meerdere wachtkamer-iRules toe op dezelfde Virtual Server, dan moet die waarde in elke iRule uniek zijn.
Maximumaantal bezoekers
Op regel #16 geef je het aantal toegestane gelijktijdige bezoekers op. Bezoekers boven die waarde gaan naar de wachtkamer.
Waarde voor idle timeout

Voor elke bezoeker wordt een verbinding gereserveerd voor de duur van de ingestelde idle timeout. Zolang de bezoeker actief is (op pagina’s klikt), blijft die verbinding voor hem behouden. Is de bezoeker deze periode inactief, dan kan hij alsnog in de wachtkamer belanden, omdat de verbinding intussen door een andere bezoeker ingenomen kan zijn.
VIP-URL’s
Je kunt de wachtkamer overslaan op basis van de opgevraagde resource. We kunnen een lijst met tekenreeksen definiëren en controleren of die overeenkomen met (een deel van) de opgevraagde URL. Is dat zo, dan wordt de website getoond zonder verbindingsreservering, ook als het maximumaantal bezoekers is overschreden.
Op regel #40 wijst de variabele “VIP” naar een data group list met de VIP-URL’s. De naam van die data group list is “%your_shortcode%-vip-url-list” (zie regel #12 voor je shortcode).
Ook als je geen VIP-URL’s gebruikt, moet deze data group list bestaan (hij mag leeg blijven), anders werkt de iRule niet.

Monitoring
Je kunt het aantal bezoekers monitoren. Ga je naar http://your_website.com/getcount, dan zie je statistieken van je online wachtkamer.
Die resultaten kun je in je monitoringsysteem integreren.
Op regel #55 en #56 geef je de IP-adressen/subnetten op van waaruit monitoring is toegestaan.

De virtuele wachtkamer
De virtuele wachtkamer is simpelweg html-code binnen de iRule. De pagina wordt dynamisch opgebouwd en door de F5 BIG-IP LTM getoond aan bezoekers boven het ingestelde maximumaantal verbindingen.
Vanaf regel #109 vind je de html-code:

Je mag die aanpassen aan je eigen wensen. Alle inhoud van de wachtkamerpagina (stylesheet, javascript, afbeeldingen enzovoort) moet in de iRule zelf staan. Afbeeldingen moet je dus naar base64 omzetten. Vanwege de maximale tekenreekslengte van een iRule-script (65520) moet je afbeeldingen bovendien comprimeren voordat je ze naar base64 omzet.
De wachtkamerpagina ververst elke minuut (zie regel #111). Zodra het aantal bezoekers op de website onder de limiet komt, wordt de bezoeker teruggestuurd naar de website.
Het ontwerp van de wachtkamerpagina kunnen je webdesigners maken; hieronder een eenvoudig voorbeeld.
