HTTP Data Compression Setup
Notes before installation
Oplon HTTP Data Compression compress data traffic to optimize bandwidth occupancy.
With Oplon Application Delivery Controller you can selectively compress individual contextualized data streams even for mime-types.
This document is for configuring the compression service only and using the filter rules of the balancing and routing component. For the installation of components Oplon S.A.A.I. reference the installation documents of the individual products.
Introduction
HTTP data compression is achieved through rewrite rules to have maximum expressiveness and flexibility of application.
Oplon Application Delivery Controller uses refined data compression parallelization core technology. Compression is then done by making the most of the parallelism of modern multicore and multithreaded CPUs by eliminating each synchronization point due to additional hardware outside the CPU.
Setup compression
Setting up compression in balancing and routing processes can be achieved by applying simple rewrite rules that affect and modify content.
The steps to follow are:
a) setting up the header rule
b) setting the body rule
c) activation on the desired flow of rules
The system already contains the rules to be able to compress the http/s bodies and simply pick them up from the templates and use them where necessary.
Setup compression - Header
ADC Settings > Rewrite management > Rewrite header rules > [search] compression
In the example below, we're going to set the necessary rewrite rules first, and then apply them to data streams.
Data compression will occur in two times, verifying the ability to compress data, and then compressing body data.
This double step is necessary because Oplon Application Delivery Controller must first determine whether the client and server can perform compressed data processing, or whether the data is already compressed originally and therefore should not be compressed.
To perform body compression, simply copy the rule from the template to the ADC module where it will be used e.g.:
Choosing the form to copy the rule to:
Copy result:
Save the change:
To analyze the rule, simply go to edit and expand the panels:
Let's save the change:
An important parameter is the compression threshold. It is important to compress only if the result is considerably improved. An improvement is defined as compression from 80% to 90%. These results can only be achieved with an object that is large enough and still larger than 2048 bytes. We recommend that you do not fall below the 2KB threshold.
Setup compression - Body
After you set up the rewrite rule, to determine whether you want to compress, you must set the rewrite rule to the Body that will induce compression while streaming the BODY.
ADC Settings > Rewrite management > Rewrite body rules > [search] compression
To use the rule, simply copy it from the template into the form on which it should be applied:
The result will be as follows:
To analyze the rule, simply enter Edit:
The rule below lists the application conditions such as the "RESPONSE" direction and the "200 ok" response code, and then the mime-types on which the compression will be performed. The rule also has two other parameters: CACHE_REDIM_FACTOR And CACHE_DIM_MAX.
These parameters are used by Oplon Application Delivery Controller to allocate memory spaces (COW copy on write) to perform compression. The parameter CACHE_REDIM_FACTOR is the widening factor of the buffer initially allocated for compression. CACHE_DIM_MAX is the maximum size in memory of the compressed object. After this size, a maximum compression size exceed error is reported.
Setup compression - Apply rules on streams
As with other rewrite rules once defined to be applied, you must associate them with the affected streams. The association is done by selecting the stream on which to apply the rules:
Example of application on all streams of the selected ADC form:
ADC Settings > Default rewrite rules > [rewriteHeaderRules] press Select Item
Select the compressionHEADER rule
Also, select ALWAYS as the operator so that this rule can run independently of other rules.
Do the same for BODY rules
The result should be similar to the following:
You can also apply rules to collection-specific streams, such as on all resources in a group:
ADC Settings > ADCs > Edit > Endpoints grouping > See details
Rewriting rules panel
Or on all resources in a single domain:
Rewriting rules domain panel:
Or on the individual endpoint groups by going further into See details
Endpoint rewrite rules panel:
You can also apply the rule at a general level and disable it in some streams. For example, if we had set the rules on the general panel of the ADC module and wanted to disable them only for certain endpoints, this is possible with Operation (NOP).
It is possible to have evidence of compression by analyzing traffic statistics. Database statistics report the in-bound and out-bound data of the two streams, highlighting the differences between what is received and what is transferred.