Skip to content
🌐

CDN Simulator

Deploy a functional CDN edge node in Azure for integration testing with F5 Distributed Cloud.
  • Single Edge Node — One Ubuntu 24.04 VM running NGINX as a caching reverse proxy, the minimum viable CDN edge
  • Terraform Deployment — Complete Azure infrastructure as code: VNet, PIP, NSG, and VM with cloud-init provisioning
  • 67+ CDN Vendor Headers — Simulates Akamai, Cloudflare, CloudFront, Fastly, and Azure Front Door request headers including True-Client-IP, CF-Connecting-IP, geolocation, device detection, JA3/JA4 fingerprints, and bot scores
  • Origin Integration — Configure the edge to forward cache misses to an F5 XC HTTP load balancer as the origin
  • Cache Verification — Validate HIT/MISS behavior with X-Cache-Status headers and NGINX cache inspection

After deployment, the CDN edge node exposes:

EndpointMethodPurpose
http://<PUBLIC_IP>/healthGETHealth check — returns JSON with component status and vendor profiles
http://<PUBLIC_IP>/GETCDN proxy — caches and forwards requests to the origin server
http://<PUBLIC_IP>/<any-path>GETCDN proxy — all paths are proxied with caching and vendor headers

Response headers added to every proxied response:

HeaderExamplePurpose
X-Cache-StatusHIT or MISSWhether response was served from cache
X-CDN-Edgecdn-simulatorIdentifies this edge node
X-CDN-POPSJCSimulated Point of Presence code
X-Served-Bycache-sjc3120-SJCSimulated cache node identifier
X-Request-IDUUIDUnique per-request identifier
PageAudiencePurpose
OverviewHuman + AIArchitecture, multi-vendor context, what this simulates
PrerequisitesAIRequired tools, Azure subscription, SSH keys, cost estimate
DeployAIComplete Terraform HCL — copy and apply to deploy
NGINX ConfigurationHuman + AIAll 67+ CDN vendor headers with exact values and purposes
VerifyAISmoke test commands with expected request/response behavior
Integrate with F5 XCHuman + AIConnect edge to F5 XC as origin, end-to-end verification
TeardownAIDestroy all resources, cleanup commands