Manual Chapter : Proxying Requests and Responses

Applies To:

Show Versions Show Versions

BIG-IP AAM

  • 12.1.5, 12.1.4, 12.1.3, 12.1.2, 12.1.1, 12.1.0, 11.6.5, 11.6.4, 11.6.3, 11.6.2, 11.6.1
Manual Chapter

Proxying Requests and Responses

Overview: Proxying rules

In general, the BIG-IP system attempts to service all HTTP requests from the system's cache. However, if you have certain types of content that you do not want the BIG-IP system to service from the system's cache, you can configure proxying rules. Using proxying rules, you identify HTTP request elements that prompt the BIG-IP system to send a request to your origin web servers for content.

You configure proxying rules from the proxying screen.

Always proxying requests for a node

When the BIG-IP system matches a request to a node that has the Always proxy requests for this node setting enabled, it sends the request to the origin web server, and responds to the request without caching the content. This option overrides any configured proxying rule, and is useful for specific content that is private.

You can, if necessary, specify objects for the BIG-IP system to cache by defining Proxy Override Rules, thus eliminating a 304 (Not Modified) response from the origin web server for a conditional request. Any objects defined by Proxy Override Rules, however, should no longer be considered private.

Note: If you configure a node to cache conditional POST requests, using If-None-Match, If-Match, If-Modified-Since, or If-Unmodified-Since headers, you must configure the node to always proxy the requests.
  1. On the Main tab, click Acceleration > Web Application > Policies .
    The Policies screen displays a list of existing acceleration policies.
  2. Click the name of a user-defined acceleration policy.
  3. Click a node in the Policy Tree.
  4. From the Matching Rules menu, choose Acceleration Rules.
  5. Select the Always proxy requests for this node option.
    Note: Selecting Always proxy requests for this node only proxies requests. This setting does not proxy responses. To avoid caching a response that matches the node, on the menu bar click Lifetime, clear the Honor Headers From Origin Web Server check box in the WebAccelerator Cache Settings area, and type 0 in the Maximum Age field.
  6. From the Caching Mode list, select one of the following to cache proxy override objects.
    Option Description
    Memory & Disk Cache Caches objects for the selected node to memory and disk cache.
    Memory-only Cache Caches objects for the selected node only to memory. In the event of power loss, memory is cleared, providing greater security.
  7. From the Proxy Override Rules list, select parameters and configure settings, as applicable.
    Proxy override rules and associated conditions enable the BIG-IP to ignore proxying rules and, consequently, cache objects defined by this setting.
    Important: To cache objects in accordance with Caching Mode settings, you must also define Proxy Override Rules. Unless you define Proxy Override Rules, all objects are proxied.
  8. Click Save.
  9. Publish the acceleration policy.
    1. Click Publish.
    2. In the Comment field, type a description.
    3. Click Publish Now.
The BIG-IP system always proxies a request that matches the associated node to the origin web server.

Configuring proxy rules for a node

When you configure proxy rules for a node, the BIG-IP system applies the configured proxying rules to requests that match the associated node.
Note: If you configure a node to cache conditional POST requests, using If-None-Match, If-Match, If-Modified-Since, or If-Unmodified-Since headers, you must configure the node to always proxy the requests.
  1. On the Main tab, click Acceleration > Web Application > Policies .
    The Policies screen displays a list of existing acceleration policies.
  2. Click the name of a user-defined acceleration policy.
  3. Click a node in the Policy Tree.
  4. From the Matching Rules menu, choose Acceleration Rules.
  5. Click Proxying.
  6. Select the Configure and use Proxy Rules for this node option.
  7. From the Caching Mode list, select one of the following to cache proxy override objects.
    Option Description
    Memory & Disk Cache Caches objects for the selected node to memory and disk cache.
    Memory-only Cache Caches objects for the selected node only to memory. In the event of power loss, memory is cleared, providing greater security.
  8. From the Proxy Rules list, select parameters and configure settings, as applicable.
    Note: In general, proxy rules options are relevant to only requests that match the applicable node, rather than to matched responses. If you configure proxying rules based on HTTP response header parameters, you can use them only in terms of how the BIG-IP caches the responses, because the BIG-IP has already sent the request to the origin web servers when it reviews the response headers.
  9. From the Proxy Override Rules list, select parameters and configure settings, as applicable.
    Proxy override rules and associated conditions enable the BIG-IP to ignore proxying rules and, consequently, cache objects defined by this setting.
    Important: To cache objects in accordance with Caching Mode settings, you must also define Proxy Override Rules. Unless you define Proxy Override Rules, all objects are proxied.
  10. Click Save.
  11. Publish the acceleration policy.
    1. Click Publish.
    2. In the Comment field, type a description.
    3. Click Publish Now.
The BIG-IP system applies configured proxy rules to requests that match the associated node.

Overriding proxy requests

You can configure a proxy override rule to prevent an origin web server from managing excessive traffic. For example, one common use of proxy override rules is for sites that receive a high volume of traffic related to web crawlers and robots clients.
  1. On the Main tab, click Acceleration > Web Application > Policies .
    The Policies screen displays a list of existing acceleration policies.
  2. Click the name of a user-defined acceleration policy.
  3. Click a node in the Policy Tree.
  4. From the Matching Rules menu, choose Acceleration Rules.
  5. Click Proxying.
  6. Select the Configure and use Proxy Rules for this node option.
  7. Select one of the following Proxying Options.
    • Always proxy requests for this node
    • Configure and use Proxy Rules for this node
  8. From the Proxy Override Rules list, select parameters and configure settings, as applicable.
    Proxy override rules and associated conditions enable the BIG-IP to ignore proxying rules and, consequently, cache objects defined by this setting.
    Important: To cache objects in accordance with Caching Mode settings, you must also define Proxy Override Rules. Unless you define Proxy Override Rules, all objects are proxied.
  9. Click Save.
  10. Publish the acceleration policy.
    1. Click Publish.
    2. In the Comment field, type a description.
    3. Click Publish Now.
A proxy override rule is configured.

About creating the example proxying rule

In the example for this site, you have three top-level nodes on the Policy Tree as follows:

  • Home. This branch node specifies the rules related to the home page.
  • Applications. This branch node specifies the rules related to the applications for the site, with the following leaf nodes:
    • Default. This leaf node specifies the rules related to non-search related applications.
    • Search. This leaf node specifies the rules related to your site’s search application.
  • Images. This branch node specifies the rules related to graphics images.

For this example, you use a segment parameter to contain identifying information for your shopping cart application. Requests for your applications are all in the following form:

http://www.example.com/apps/doSomething.jsp;AAy23BV39

If the session tracking string does not appear in the segment parameter at the end of the URI, you want the BIG-IP system to send the request to the origin web servers for special handling. Create a proxying rule for your Applications node with just one parameter based on the path segment data type. This rule should identify the subject as being path ordinal 1 in the full path, as counted from right to left.

You set this rule to go into effect if the parameter value is an empty string or if the parameter is absent from the request.

Configuring the example proxying rule

When defining parameters for proxy rules, you specify the parameter identity and its value that must appear in a request.
  1. On the Main tab, click Acceleration > Web Application > Policies .
    The Policies screen displays a list of existing acceleration policies.
  2. Click the name of a user-defined acceleration policy.
  3. Expand the Policy Tree to a branch node or leaf node, and click the node.
  4. From the Matching Rules menu, choose Acceleration Rules.
  5. Click Proxying.
  6. Select the Configure and use Proxy Rules for this node option.
  7. From the Caching Mode list, select Memory & Disk Cache.
  8. From the Proxy Rules list, select Cookie, and click the Add button.
  9. Name the cookie version.
  10. Under Value(s), select the check box beside the Value matches: list, and select Value does not match from the list.
  11. From the Value does not match field, type version.
  12. Select the Value is an empty string check box.
  13. Click Save.
  14. Publish the acceleration policy.
    1. Click Publish.
    2. In the Comment field, type a description.
    3. Click Publish Now.
The example proxying rule is configured.

About configuring the proxying rule parameters example

You define a parameter for proxy rules by specifying a parameter identity and its value, which must appear in a request for the BIG-IP system to send it to the origin web server for content.

For example, if you create a proxy rule based on a cookie named version, the BIG-IP system sends the request to the origin server if one of the following conditions is true:

  • The version cookie does not appear on the request.
  • The version cookie appears on the request, but has no value set for it (version is empty).

Creating the example proxying rule parameters

When defining parameters for proxy rules, you identify the parameter and its value that must appear in a request, for the BIG-IP system to send it to the origin web server for content.

For example, if you create a proxy rule based on a cookie named version, the BIG-IP system sends the request to the origin web server if one of the following conditions is true:

  • The version cookie does not appear on the request.
  • The version cookie appears on the request, but has no value set for it (version is empty).
  1. On the Main tab, click Acceleration > Web Application > Policies .
    The Policies screen displays a list of existing acceleration policies.
  2. Click the name of a user-defined acceleration policy.
  3. Expand the Policy Tree to a branch node or leaf node, and click the node.
  4. From the Matching Rules menu, choose Acceleration Rules.
  5. Click Proxying.
  6. Select the Configure and use Proxy Rules for this node option.
  7. From the Caching Mode list, select Memory & Disk Cache.
  8. From the Proxy Rules list, select Cookie, and click the Add button.
  9. Name the cookie version.
  10. Under Value(s), select the check box beside the Value matches: list, and select Value does not match from the list.
  11. From the Value does not match field, type version.
  12. Select the Value is an empty string check box.
  13. Click Save.
  14. Publish the acceleration policy.
    1. Click Publish.
    2. In the Comment field, type a description.
    3. Click Publish Now.
The example proxying rule is configured.

About configuring the example proxy override rule

One common application for proxy override rules is for sites that receive a high volume of traffic related to web crawlers and robots clients. You can avoid having your origin web server manage this excessive traffic by configuring a proxy override rule. It is especially important to consider a proxy override rule for this application if your proxy rules are based on a set cookie, because web crawlers and robots rarely present cookies in their requests.

Before configuring the rule, you could examine the origin server’s log files to see if the web crawler presents a specific a string that you can use for a proxy override rule. For example, the web crawler might present a string for the HTTP USER_AGENT request header that looks very much like the value presented for MSIE 5.0 browsers. However, the web crawler adds badcrawler to the HTTP USER_AGENT string. For this example, you use a proxy override rule for the node’s proxying rule, based on the user agent parameter to match the regular expression .*badcrawler.*.

When the BIG-IP system finds the user agent with this regular expression in an HTTP request, it services the request from cache, even if the matched proxying rule dictates that the BIG-IP system should send the request to the origin server.

Once you publish the acceleration policy, the BIG-IP system attempts to service, from cache, all requests that it receives with a HTTP USER_AGENT value that matches .*badcrawler.*, regardless of any proxy rules that the request matches.

Configuring the example proxy override rule

In this proxy override rule example, when the BIG-IP system finds the user agent with the regular expression .*badcrawler.* in an HTTP request, it services the request from cache, even if the matched proxying rule dictates that the BIG-IP system should send the request to the origin server.
  1. On the Main tab, click Acceleration > Web Application > Policies .
    The Policies screen displays a list of existing acceleration policies.
  2. Click the name of a user-defined acceleration policy.
  3. Click a node in the Policy Tree.
  4. From the Matching Rules menu, choose Acceleration Rules.
  5. Click Proxying.
  6. From the Caching Mode list, select Memory & Disk Cache.
  7. From the Proxy Override Rules list, select User Agent.
  8. Click the Add button.
  9. Select the Value matches check box, and select Value matches from the list.
  10. From the Value matches field, type .*badcrawler.* (the regular expression that matches the user agent value).
  11. Click Save.
  12. Publish the acceleration policy.
    1. Click Publish.
    2. In the Comment field, type a description.
    3. Click Publish Now.
The BIG-IP system services HTTP requests with a user agent that contains badcrawler from cache.