What Is an Application Delivery Controller (ADC)?

An application delivery controller (ADC) uses various techniques to improve the performance of web applications. In the usual configuration, the ADC sits in front of a group of web and application servers and mediates requests and responses between them and their clients, effectively making the group look like a single virtual server to the end user.

There is no standard definition of what an application delivery controller does or how it does it, but the techniques used to enhance performance commonly include load balancing, caching, compression, and offloading of SSL processing.

Load balancing refers to distributing incoming requests across the group of servers. The simplest algorithm, round robin, simply sends requests sequentially to the servers in a list. More sophisticated algorithms consider factors such as the capacity of each server, the type of content requested, fields in the HTTP header, the client location, and so on.

Caching means storing content locally on the ADC instead of fetching it anew from the backend servers every time a client requests it. This both speeds delivery to the client and reduces server load.

Compression of static assets – such as images, JavaScript code, music, and video files – before delivering them to clients both speeds the delivery of requested content and increases throughput on the network as a whole.

By offloading SSL processing, the ADC takes the place of the backend servers as the SSL endpoint for connections with clients, meaning that it performs the decryption of requests and encryption of responses that the servers would otherwise have to do. Taking over that computationally intensive operation frees cycles for servers to perform the work they are designed for, which speeds content delivery.

As a software-based application delivery controller and load balancer, NGINX Plus is significantly less expensive than hardware solutions with similar capabilities. It combines web serving, load balancing, caching, media delivery, and more, making it an ideal choice for controlling the delivery of your applications.