Manual Chapter :
Configuring Content Adaptation for HTTP Requests
Applies To:
Show VersionsBIG-IP AAM
- 15.1.8, 15.1.7, 15.1.6, 15.1.5, 15.1.4, 15.1.3, 15.1.2, 15.1.1, 15.1.0, 15.0.1, 15.0.0
BIG-IP APM
- 16.1.3, 16.1.2, 16.1.1, 16.1.0, 16.0.1, 16.0.0, 15.1.8, 15.1.7, 15.1.6, 15.1.5, 15.1.4, 15.1.3, 15.1.2, 15.1.1, 15.1.0, 15.0.1, 15.0.0
BIG-IP Analytics
- 16.1.3, 16.1.2, 16.1.1, 16.1.0, 16.0.1, 16.0.0, 15.1.8, 15.1.7, 15.1.6, 15.1.5, 15.1.4, 15.1.3, 15.1.2, 15.1.1, 15.1.0, 15.0.1, 15.0.0
BIG-IP Link Controller
- 16.1.3, 16.1.2, 16.1.1, 16.1.0, 16.0.1, 16.0.0, 15.1.8, 15.1.7, 15.1.6, 15.1.5, 15.1.4, 15.1.3, 15.1.2, 15.1.1, 15.1.0, 15.0.1, 15.0.0
BIG-IP LTM
- 16.1.3, 16.1.2, 16.1.1, 16.1.0, 16.0.1, 16.0.0, 15.1.8, 15.1.7, 15.1.6, 15.1.5, 15.1.4, 15.1.3, 15.1.2, 15.1.1, 15.1.0, 15.0.1, 15.0.0
BIG-IP PEM
- 16.1.3, 16.1.2, 16.1.1, 16.1.0, 16.0.1, 16.0.0, 15.1.8, 15.1.7, 15.1.6, 15.1.5, 15.1.4, 15.1.3, 15.1.2, 15.1.1, 15.1.0, 15.0.1, 15.0.0
BIG-IP AFM
- 16.1.3, 16.1.2, 16.1.1, 16.1.0, 16.0.1, 16.0.0, 15.1.8, 15.1.7, 15.1.6, 15.1.5, 15.1.4, 15.1.3, 15.1.2, 15.1.1, 15.1.0, 15.0.1, 15.0.0
BIG-IP DNS
- 16.1.3, 16.1.2, 16.1.1, 16.1.0, 16.0.1, 16.0.0, 15.1.8, 15.1.7, 15.1.6, 15.1.5, 15.1.4, 15.1.3, 15.1.2, 15.1.1, 15.1.0, 15.0.1, 15.0.0
BIG-IP ASM
- 16.1.3, 16.1.2, 16.1.1, 16.1.0, 16.0.1, 16.0.0, 15.1.8, 15.1.7, 15.1.6, 15.1.5, 15.1.4, 15.1.3, 15.1.2, 15.1.1, 15.1.0, 15.0.1, 15.0.0
Configuring Content Adaptation for HTTP Requests
Overview: Configuring HTTP Request Adaptation
This implementation describes how to configure the BIG-IP content
adaptation feature for adapting HTTP requests. With this feature, a BIG-IP virtual server can
conditionally forward HTTP requests to a pool of Internet Content Adaptation Protocol (ICAP)
servers for modification, before sending the request to a web server.
In this implementation, you create a standard HTTP virtual server and pool of web servers for
processing client requests. The HTTP virtual server accepts each client request in the normal
way, but before load balancing the request to the pool of web servers, the virtual server
forwards the HTTP request to a special internal virtual server.
The
internal virtual server
receives the HTTP request from the standard virtual
server, and load balances the request to a pool of ICAP servers for modification. After the ICAP
server modifies the request, the BIG-IP system sends the request to the appropriate web server
for processing.The internal virtual server references the pool of content adaptation servers, including the
load balancing method to use for those servers. The internal virtual server also references an
ICAP profile, which includes specific instructions for how the BIG-IP system should wrap the HTTP
request in an ICAP message for adaptation.
Optionally, the internal virtual server can reference:
- Any persistence method that you would like the BIG-IP system to use when load balancing traffic to the ICAP pool.
- Any health or performance monitor that you would like the BIG-IP system to use when load balancing traffic to the ICAP pool.
- Any iRules® related to the content adaptation.
Task summary
for content adaptation for HTTP requests and responses
Complete the tasks in this implementation to create a BIG-IP
configuration that performs content adaptation for HTTP requests and responses.
Creating a custom client-side ICAP profile
You create this ICAP profile when you want to use an ICAP server to wrap an HTTP request in an
ICAP message before the BIG-IP system sends the request to a
pool of web servers. The profile specifies the HTTP request-header values that
the ICAP server uses for the ICAP message.
You can use macro expansion for all ICAP header values. For
example, if an ICAP header value contains
${SERVER_IP}
, the BIG-IP
system replaces the macro with the IP address of the ICAP server selected from the
pool assigned to the internal virtual server. If an ICAP header value contains
${SERVER_PORT}
, the BIG-IP system replaces the macro with the
port of the ICAP server selected from the pool assigned to the internal virtual
server. For example, you can set the URI
value in an ICAP profile to
icap://${SERVER_IP}:${SERVER_PORT}/virusScan
.- On the Main tab, click.
- ClickCreate.
- In theNamefield, type a unique name for the profile.
- For theParent Profilesetting, retain the default value,icap.
- On the right side of the screen, select theCustomcheck box.
- In theURIfield, type a URI in this format:icap://hostname:port/path.For example, using macro expansion, you can set theURIvalue to:
.icap://${SERVER_IP}:${SERVER_PORT}/virusScan - In thePreview Lengthfield, type a length or retain the default value0.This value defines the amount of the HTTP request or response that the BIG-IP system offers to the ICAP server when sending the request or response to the server for adaptation. This value should not exceed the length of the preview that the ICAP server has indicated it will accept.
- In theHeader Fromfield, type a value for theFrom:ICAP header.
- In theHostfield, type a value for theHost:ICAP header.
- In theRefererfield, type a value for theReferer:ICAP header.
- In theUser Agentfield, type a value for theUser-Agent:ICAP header.
- ClickFinished.
After you create the ICAP profile, you can assign it to an internal virtual server
so that the HTTP request that the BIG-IP system sends to an ICAP server is wrapped in an
ICAP message, according to the settings you specified in the ICAP profile.
Creating a pool of ICAP servers
You perform this task to create a pool of ICAP servers that perform content
adaptation on HTTP requests.
- On the Main tab, click.The Pool List screen opens.
- ClickCreate.The New Pool screen opens.
- In theNamefield, type a unique name for the pool.
- For theHealth Monitorssetting, from theAvailablelist, select thehttpmonitor and move the monitor to theActivelist.
- From theLoad Balancing Methodlist, select how the system distributes traffic to members of this pool.The default isRound Robin.
- For thePriority Group Activationsetting, specify how to handle priority groups:
- SelectDisabledto disable priority groups. This is the default option.
- SelectLess than, and in theAvailable Membersfield type the minimum number of members that must remain available in each priority group in order for traffic to remain confined to that group.
- Using theNew Memberssetting, add each resource that you want to include in the pool:
- (Optional) In theNode Namefield, type a name for the node portion of the pool member.
- In theAddressfield, type an IP address.
- In theService Portfield, type a port number, or select a service name from the list.
- (Optional) In thePriorityfield, type a priority number.
- ClickAdd.
- ClickFinished.
The pool of ICAP load balancing servers appears in the Pools list.
Creating an internal virtual server for forwarding requests to an ICAP server
A virtual server of type
internal
provides a destination that a
standard
type of virtual server can use when forwarding
HTTP requests slated for ICAP-based content adaptation.- On the Main tab, click.The Virtual Server List screen opens.
- ClickCreate.The New Virtual Server screen opens.
- In theNamefield, type a unique name for the virtual server.
- In theDescriptionfield, type a description of the virtual server.For example:This virtual server ensures HTTP request modification through the use of the.service_nameICAP service.
- From theTypelist, selectInternal.
- For theStatesetting, verify that the value is set toEnabled.
- From theConfigurationlist, selectAdvanced.
- From theICAP Profilelist, select the ICAP profile that you previously created for handling HTTP requests.
- From theDefault Poollist, select the pool of ICAP servers that you previously created.
- ClickFinished.
After you perform this task, a standard type of virtual server can forward HTTP
requests to an internal type of virtual server. The internal virtual server then sends
the request to a pool of ICAP servers, before sending the request back to the standard
virtual server for forwarding to the pool of web servers.
Creating a custom Request Adapt profile
You create a Request Adapt type of profile when you want a standard HTTP virtual
server to forward HTTP requests to an internal virtual server that references a pool of
ICAP servers. A Request Adapt type of profile instructs the HTTP virtual server to send
an HTTP request to a named internal virtual server for possible request
modification.
- On the Main tab, click.
- ClickCreate.
- In theNamefield, type a unique name for the profile.
- For theParent Profilesetting, retain the default value,requestadapt.
- On the right-side of the screen, clear theCustomcheck box.
- For theEnabledsetting, retain the default value,Enabled.When you set this value toEnabled, the BIG-IP system forwards HTTP requests to the specified internal virtual server for adaptation.
- From theInternal Virtual Namelist, select the name of the internal virtual server that you previously created for forwarding HTTP requests to the pool of iCAP servers.
- In thePreview Sizefield, type a numeric value.This specifies the maximum size of the preview buffer. This buffer holds a copy of the HTTP request header and the data sent to the internal virtual server, in case the adaptation server reports that no adaptation is needed. Setting the preview size to0disables buffering of the request and should only be done if the adaptation server always returns a modified HTTP request or the original HTTP request.
- In theTimeoutfield, type a numeric value, in seconds.If the internal virtual server does not return a result within the specified time, a timeout error occurs. To disable the timeout, use the value0.
- From theService Down Actionlist, select an action for the BIG-IP system to take if the internal virtual server returns an error:
- SelectIgnoreto instruct the BIG-IP system to ignore the error and send the unmodified HTTP request to an HTTP server in the HTTP server pool.
- SelectDropto instruct the BIG-IP system to drop the connection.
- SelectResetto instruct the BIG-IP system to reset the connection.
- ClickFinished.
After you perform this task, the BIG-IP system contains a
Request Adapt profile that a standard HTTP virtual server can use to forward an HTTP
request to an internal virtual server for ICAP traffic.
Creating a custom HTTP profile
An HTTP profile defines the way that you want the BIG-IPsystem to manage HTTP traffic.
Other HTTP profile types
(HTTP Compression and Web Acceleration) enable you to configure compression and
cache settings, as required. Use of these profile types is
optional.
- On the Main tab, click.The HTTP profile list screen opens.
- ClickCreate.The New HTTP Profile screen opens.
- In theNamefield, type a unique name for the profile.
- From theParent Profilelist, selecthttp.
- Select theCustomcheck box.
- Modify the settings, as required.
- ClickFinished.
The custom HTTP profile now appears in the HTTP profile list screen.
Creating a pool to process HTTP traffic
You can create a pool of web servers to process HTTP requests.
- On the Main tab, click.The Pool List screen opens.
- ClickCreate.The New Pool screen opens.
- In theNamefield, type a unique name for the pool.
- For theHealth Monitorssetting, from theAvailablelist, select thehttpmonitor and move the monitor to theActivelist.
- From theLoad Balancing Methodlist, select how the system distributes traffic to members of this pool.The default isRound Robin.
- For thePriority Group Activationsetting, specify how to handle priority groups:
- SelectDisabledto disable priority groups. This is the default option.
- SelectLess than, and in theAvailable Membersfield type the minimum number of members that must remain available in each priority group in order for traffic to remain confined to that group.
- Using theNew Memberssetting, add each resource that you want to include in the pool:
- Type an IP address in theAddressfield.
- Type80in theService Portfield, or selectHTTPfrom the list.
- (Optional) Type a priority number in thePriorityfield.
- ClickAdd.
- ClickFinished.
The new pool appears in the Pools list.
Creating an HTTP virtual server for enabling request adaptation
You perform this task to create a standard virtual server that can forward an HTTP
request to an internal virtual server. The internal virtual server then sends the
request to a pool of ICAP servers before the BIG-IP system
sends the request to the web server.
- On the Main tab, click.The Virtual Server List screen opens.
- ClickCreate.The New Virtual Server screen opens.
- In theNamefield, type a unique name for the virtual server.
- In theDestination Addressfield, type the IP address that you want to use as a destination for client traffic destined for a pool of HTTP web servers.The supported format is address/prefix, where the prefix length is in bits. For example, an IPv4 address/prefix is10.0.0.1or10.0.0.0/24, and an IPv6 address/prefix isffe1::0020/64or2001:ed8:77b5:2:10:10:100:42/64. When you use an IPv4 address without specifying a prefix, the BIG-IP system automatically uses a/32prefix.The IP address you type must be available and not in the loopback network.
- In theService Portfield, type443or selectHTTPSfrom the list.If traffic is on a secure internal network, you can use80/HTTP.
- From theConfigurationlist, selectAdvanced.
- From theHTTP Profilelist, select the name of the HTTP profile that you created previously.
- From theRequest Adapt Profilelist, select the name of the Request Adapt profile that you previously created.
- From theSource Address Translationlist, selectAuto Map.
- From theDefault Poollist, select the name of the HTTP server pool that you previously created.
- ClickFinished.
After you create the virtual server, the BIG-IP system can
forward an HTTP request to a pool of ICAP servers before sending the request to the web
server.
Implementation result
After you complete the tasks in this implementation, the BIG-IP system can
perform content adaptation on HTTP requests as they pass through the BIG-IP system during normal
HTTP processing. The new objects that this implementation creates are:
- A custom ICAP profile
- A pool of ICAP content adaptation servers
- An internal virtual server that load balances HTTP requests to the ICAP pool
- A custom Request Adapt profile that references the internal virtual server
- A custom HTTP profile
- A standard HTTP pool of web servers
- A standard HTTP virtual server that sends HTTP requests to an internal virtual server for content adaptation and load balances HTTP requests to the web pool