You just finished wiring up another internal service behind your load balancer, and naturally, the question hits: Should this go through Citrix ADC, HAProxy, or both? The answer depends less on brand loyalty and more on what job each tool is built to do.
Citrix ADC is a full-featured application delivery controller designed to manage traffic, enforce policies, and scale sessions under heavy load. HAProxy, on the other hand, is the Swiss Army knife of reverse proxies—lightweight, fast, and famously scriptable. Pairing Citrix ADC with HAProxy lets infrastructure teams combine enterprise governance with open-source flexibility. You get Citrix’s traffic intelligence and SSL offload with HAProxy’s rapid routing and observability.
In practice, Citrix ADC often sits at the edge, handling client connections, authentication, and TLS termination. HAProxy then runs inside the cluster or private network, shaping internal traffic, performing health checks, and balancing workloads across microservices. The ADC enforces access control, while HAProxy manages where traffic goes once inside. It’s a clean split that keeps outer defenses strong and inner routing agile.
To integrate the two, map identity headers or session tokens from Citrix ADC to the backend rules HAProxy expects. Use consistent OIDC claims or JWT fields so that requests flow with predictable authorization context. This pattern avoids double-handling credentials and plays nicely with providers like Okta or AWS IAM.
When something misbehaves, check that Citrix ADC’s content switching policies pass the correct hostnames or SNI values downstream. HAProxy relies on those details for routing decisions. Keep both layers synchronized in their health check intervals and cipher settings to prevent timing loops or TLS mismatches.