You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by bu...@apache.org on 2011/02/13 22:38:51 UTC

svn commit: r785389 [2/7] - in /websites/staging/trafficserver/trunk/content/docs/trunk: ./ admin/configuration-files/ admin/configuring-cache/ admin/configuring-traffic-server/ admin/event-logging-formats/ admin/explicit-proxy-caching/ admin/faqs/ adm...

Added: websites/staging/trafficserver/trunk/content/docs/trunk/admin/configuration-files/files.en.html
==============================================================================
--- websites/staging/trafficserver/trunk/content/docs/trunk/admin/configuration-files/files.en.html (added)
+++ websites/staging/trafficserver/trunk/content/docs/trunk/admin/configuration-files/files.en.html Sun Feb 13 21:38:50 2011
@@ -0,0 +1,3606 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xml:lang="en" lang="en">
+  <head>
+    
+    <link rel="stylesheet" href="/styles/pygments_style.css" />
+    
+    <title>Administrator&#39;s Guide - Configuration Files</title>
+    <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License.  You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and limitations under the License. -->
+  </head>
+
+  <body>
+    <div id="header">
+	    <span id="ts_logo">
+		  <a href="http://trafficserver.apache.org/"><img alt="Apache Traffic Server" src="/images/ts75.png" /></a>
+	  </span>
+	    <h1>Administrator&#39;s Guide - Configuration Files</h1>
+    </div>
+
+  <div id="content">
+      <p>Available Languages: [LANG]</p>
+<h1 id="files">Appendix E - Configuration Files</h1>
+<p>This appendix describes Traffic Server configuration files that you can edit.</p>
+<div class="toc">
+<ul>
+<li><a href="#files">Appendix E - Configuration Files</a><ul>
+<li><a href="#bypass.config">bypass.config</a><ul>
+<li><a href="#format">Format</a><ul>
+<li><a href="#dynamic_deny_bypass_rules__dynamicbypass_rules">Dynamic Deny Bypass Rules #### {#dynamic.bypass_rules}</a></li>
+<li><a href="#examples">Examples</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#cache.config">cache.config</a><ul>
+<li><a href="#format_1">Format</a><ul>
+<li><a href="#examples_1">Examples</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#congestion.config">congestion.config</a><ul>
+<li><a href="#format_2">Format</a><ul>
+<li><a href="#examples_2">Examples</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#hosting.config">hosting.config</a><ul>
+<li><a href="#format_3">Format</a><ul>
+<li><a href="#generic_partition">Generic Partition</a></li>
+<li><a href="#examples_3">Examples</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#icp.config">icp.config</a><ul>
+<li><a href="#format_4">Format</a><ul>
+<li><a href="#examples_4">Examples</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#ip_allowconfig__ip_allowconfig">ip_allow.config ## {#ip_allow.config}</a><ul>
+<li><a href="#format_5">Format</a><ul>
+<li><a href="#examples_5">Examples</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#logs.config">logs.config</a><ul>
+<li><a href="#format_6">Format</a><ul>
+<li><a href="#examples_6">Examples</a></li>
+<li><a href="#welf">WELF</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#log_hostsconfig___log_hostsconfig">log_hosts.config  ## {#log_hosts.config}</a><ul>
+<li><a href="#format_7">Format</a><ul>
+<li><a href="#examples_7">Examples</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#logs_xmlconfig___logs_xmlconfig">logs_xml.config  ## {#logs_xml.config}</a><ul>
+<li><a href="#format_8">Format</a><ul>
+<li><a href="#logformat">LogFormat</a></li>
+</ul>
+</li>
+<li><a href="#logfilters">LogFilters</a></li>
+<li><a href="#LogObject">LogObject</a><ul>
+<li><a href="#examples_8">Examples</a></li>
+<li><a href="#welf_1">WELF</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#parent.config">parent.config</a><ul>
+<li><a href="#format_9">Format</a></li>
+<li><a href="#examples_9">Examples</a></li>
+</ul>
+</li>
+<li><a href="#parition.config">partition.config</a><ul>
+<li><a href="#format_10">Format</a><ul>
+<li><a href="#examples_10">Examples</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#records.config">records.config</a><ul>
+<li><a href="#format_11">Format</a><ul>
+<li><a href="#examples_11">Examples</a></li>
+<li><a href="#configuration_variables">Configuration Variables</a></li>
+</ul>
+</li>
+<li><a href="#records.config-system-variables">System Variables</a></li>
+</ul>
+</li>
+<li><a href="#remap.config">remap.config</a><ul>
+<li><a href="#format_12">Format</a><ul>
+<li><a href="#examples_12">Examples</a><ul>
+<li><a href="#reverse_proxy_mapping_rules">Reverse Proxy Mapping Rules</a></li>
+<li><a href="#redirect_mapping_rules">Redirect Mapping Rules</a></li>
+<li><a href="#regular_expression_regex_remap_support">Regular Expression (regex) Remap Support</a></li>
+</ul>
+</li>
+<li><a href="#examples_13">Examples</a></li>
+<li><a href="#plugin_chaining">Plugin Chaining</a></li>
+<li><a href="#examples_14">Examples</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#splitdns.config">splitdns.config</a><ul>
+<li><a href="#format_13">Format</a></li>
+<li><a href="#examples_15">Examples</a></li>
+</ul>
+</li>
+<li><a href="#ssl_multicertconfig__ssl_multicertconfig">ssl_multicert.config ## {#ssl_multicert.config}</a><ul>
+<li><a href="#format_14">Format</a></li>
+<li><a href="#examples_16">Examples</a></li>
+</ul>
+</li>
+<li><a href="#storage.config">storage.config</a><ul>
+<li><a href="#format_15">Format</a></li>
+<li><a href="#examples_17">Examples</a><ul>
+<li><a href="#solaris_example">Solaris Example</a></li>
+<li><a href="#linux_example">Linux Example</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#update.config">update.config</a><ul>
+<li><a href="#supported_tagattribute_pairs">Supported Tag/Attribute Pairs</a></li>
+<li><a href="#format_16">Format</a><ul>
+<li><a href="#examples_18">Examples</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#specifying_url_regular_expressions_url_regex__url_regex">Specifying URL Regular Expressions (<code>url_regex</code>) ## {#url_regex}</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<h2 id="bypass.config">bypass.config</h2>
+<p>The bypass.config file contains static bypass rules that Traffic Server
+uses in transparent proxy caching mode. Static bypass rules instruct
+Traffic Server to bypass certain incoming client requests so they are
+served by the origin server. The bypass.config file also accepts
+<a href="#dynamic.deny_bypass">Dynamic Deny Bypass Rules</a>.</p>
+<p>You can configure three types of static bypass rules:
+- <strong>Source bypass rules</strong> configure Traffic Server to bypass a particular
+  source IP address or range of IP addresses. For example: bypass
+  clients that do not want to use caching.
+- <strong>Destination bypass rules</strong> configure Traffic Server to bypass a
+  particular destination IP address or range of IP addresses. For
+  example: bypass origin servers that use IP authentication based on the
+  client's real IP address.
+  <strong>IMPORTANT:</strong> Destination bypass rules prevent Traffic Server from
+  caching an entire site. You will experience hit rate impacts if the
+  site you bypass is popular.
+- <strong>Source/destination pair bypass rules</strong> configure Traffic Server to
+  bypass requests that originate from the specified source to the
+  specified destination. For example: route around specific
+  client-server pairs that experience broken IP authentication or
+  out-of-band HTTP traffic problems when cached. Source/destination
+  bypass rules can be preferable to destination rules because they block
+  a destination server only for users that experience problems.</p>
+<p><strong>IMPORTANT:</strong> After you modify the bypass.config file, you must restart
+Traffic Server.</p>
+<h4 id="format">Format</h4>
+<p>Bypass rules follow the format below:</p>
+<div class="codehilite"><pre><span class="n">bypass</span> <span class="n">src</span> <span class="n">ipaddress</span> <span class="o">|</span> <span class="n">dst</span> <span class="n">ipaddress</span> <span class="o">|</span> <span class="n">src</span> <span class="n">ipaddress</span> <span class="n">AND</span> <span class="n">dst</span> <span class="n">ipaddress</span>
+</pre></div>
+
+
+<p>The following list describes the variables.</p>
+<dl>
+<dt><code>src</code> <em><code>ipaddress</code></em></dt>
+<dd>Specifies the source (client) IP address in incoming requests Traffic</dd>
+</dl>
+<p>Server must bypass.</p>
+<p>The variable ipaddress can be one of the following:</p>
+<ul>
+<li>A simple IP address, such as 123.45.67.8</li>
+<li>In CIDR (Classless Inter-Domain Routing) format, such as 1.1.1.0/24</li>
+<li>A range separated by a dash, such as 1.1.1.1-2.2.2.2</li>
+<li>Any combination of the above separated by commas, such as 1.1.1.0/24,
+     25.25.25.25, 123.1.23.1-123.1.23.123</li>
+</ul>
+<dl>
+<dt><code>dst</code> <em><code>ipaddress</code></em></dt>
+<dd>Specifies the destination (origin server) IP address in incoming</dd>
+</dl>
+<p>requests Traffic Server must bypass.</p>
+<p>The variable ipaddress can be one of the following:</p>
+<ul>
+<li>A simple IP address, such as 123.45.67.8</li>
+<li>In CIDR (Classless Inter-Domain Routing) format, such as 1.1.1.0/24</li>
+<li>A range separated by a dash, such as 1.1.1.1-2.2.2.2</li>
+<li>Any combination of the above separated by commas, such as 1.1.1.0/24,
+     25.25.25.25, 123.1.23.1-123.1.23.123</li>
+</ul>
+<dl>
+<dt><code>src</code> <em><code>ipaddress</code></em> <code>AND dst</code> <em><code>ipaddress</code></em></dt>
+<dd>Specifies the source and destination IP address pair Traffic Server must</dd>
+</dl>
+<p>bypass.</p>
+<p>The variable ipaddress must be a single IP address, such as 123.45.67.8</p>
+<h4 id="dynamic_deny_bypass_rules__dynamicbypass_rules">Dynamic Deny Bypass Rules #### {#dynamic.bypass_rules}</h4>
+<p>In addition to static bypass rules, the bypass.config file also accepts
+dynamic deny bypass rules that prevent Traffic Server from bypassing
+certain incoming client requests dynamically (a deny bypass rule can
+prevent Traffic Server from bypassing itself). Dynamic deny bypass rules
+can be source, destination, or source/destination and have the following
+format:</p>
+<div class="codehilite"><pre><span class="n">deny_dyn_bypass</span> <span class="n">src</span> <span class="n">ipaddress</span> <span class="o">|</span> <span class="n">dst</span> <span class="n">ipaddress</span> <span class="o">|</span> <span class="n">src</span> <span class="n">ipaddresss</span> <span class="n">AND</span> <span class="n">ipaddress</span>
+</pre></div>
+
+
+<p>For a description of the options, refer to the table above. For the
+dynamic deny bypass rules to work, you must set the variable
+<code>proxy.config.arm.bypass_dynamic_enabled</code> to <code>1</code> in the
+<a href="#records.config">records.config</a> file.</p>
+<p><strong>IMPORTANT:</strong> Static bypass rules overwrite dynamic deny bypass rules. If a
+static bypass rule and a dynamic bypass rule contain the same IP address,
+then the dynamic deny bypass rule will be ignored.</p>
+<h4 id="examples">Examples</h4>
+<p>The following example shows source, destination, and source/destination
+<strong>bypass rules</strong>:</p>
+<div class="codehilite"><pre><span class="n">bypass</span> <span class="n">src</span> <span class="mf">1.1.1.0</span><span class="o">/</span><span class="mi">24</span><span class="p">,</span> <span class="mf">25.25.25.25</span><span class="p">,</span> <span class="mf">128.252.11.11</span><span class="o">-</span><span class="mf">128.252.11.255</span>
+<span class="n">bypass</span> <span class="n">dst</span> <span class="mf">24.24.24.0</span><span class="o">/</span><span class="mi">24</span>
+<span class="n">bypass</span> <span class="n">src</span> <span class="mf">25.25.25.25</span> <span class="n">AND</span> <span class="n">dst</span> <span class="mf">24.24.24.0</span>
+</pre></div>
+
+
+<p>The following example shows source, destination, and source/destination
+<strong>dynamic deny bypass rules</strong>:</p>
+<div class="codehilite"><pre><span class="n">deny_dyn_bypass</span> <span class="n">src</span> <span class="mf">128.252.11.11</span><span class="o">-</span><span class="mf">128.252.11.255</span>
+<span class="n">deny_dyn_bypass</span> <span class="n">dst</span> <span class="mf">111.111.11.1</span>
+<span class="n">deny_dyn_bypass</span> <span class="n">src</span> <span class="mf">111.11.11.1</span> <span class="n">AND</span> <span class="n">dst</span> <span class="mf">111.11.1.1</span>
+</pre></div>
+
+
+<h2 id="cache.config">cache.config</h2>
+<p>The cache.config file defines how Traffic Server caches web objects. You
+can add caching rules to specify the following:
+- Not to cache objects from specific IP addresses
+- How long to pin particular objects in the cache
+- How long to consider cached objects as fresh
+- Whether to ignore no-cache directives from the server</p>
+<p><strong>IMPORTANT:</strong> After you modify the <code>cache.config file</code>, navigate to the Traffic
+Server bin directory; then run the <code>traffic_line -x</code> command to apply
+changes. When you apply the changes to a node in a cluster, Traffic Server
+automatically applies the changes to all other nodes in the cluster.</p>
+<h4 id="format_1">Format</h4>
+<p>Each line in the cache.config file contains a caching rule. Traffic Server
+recognizes three space-delimited tags:</p>
+<div class="codehilite"><pre><span class="n">primary_destination</span><span class="o">=</span><span class="n">value</span> <span class="n">secondary_specifier</span><span class="o">=</span><span class="n">value</span> <span class="n">action</span><span class="o">=</span><span class="n">value</span>
+</pre></div>
+
+
+<p>You can use more than one secondary specifier in a rule. However, you
+cannot repeat a secondary specifier.
+The following list shows the possible primary destinations with allowed values.</p>
+<dl>
+<dt><em><code>dest_domain</code></em></dt>
+<dd>A requested domain name. Traffic Server matches the domain name of the</dd>
+</dl>
+<p>destination from the URL in the request.</p>
+<dl>
+<dt><em><code>dest_host</code></em></dt>
+<dd>A requested hostname. Traffic Server matches the hostname of the</dd>
+</dl>
+<p>destination from the URL in the request.</p>
+<dl>
+<dt><em><code>dest_ip</code></em></dt>
+<dd>A requested IP address. Traffic Server matches the IP address of the</dd>
+</dl>
+<p>destination in the request.</p>
+<dl>
+<dt><em><code>url_regex</code></em></dt>
+<dd>A regular expression (regex) to be found in a URL.</dd>
+</dl>
+<p>The secondary specifiers are optional in the cache.config file. The
+following list shows possible secondary specifiers with allowed values.</p>
+<dl>
+<dt><em><code>port</code></em></dt>
+<dd>A requested URL port.</dd>
+<dt><em><code>scheme</code></em></dt>
+<dd>A request URL protocol: http or https.</dd>
+<dt><em><code>prefix</code></em></dt>
+<dd>A prefix in the path part of a URL.</dd>
+<dt><em><code>suffix</code></em></dt>
+<dd>A file suffix in the URL.</dd>
+<dt><em><code>method</code></em></dt>
+<dd>A request URL method: get, put, post, trace.</dd>
+<dt><em><code>time</code></em></dt>
+<dd>A time range, such as 08:00-14:00.</dd>
+<dt><em><code>src_ip</code></em></dt>
+<dd>A client IP address.</dd>
+</dl>
+<p>The following list shows possible actions and their allowed values.</p>
+<dl>
+<dt><em><code>action</code></em></dt>
+<dd>One of the following values:</dd>
+</dl>
+<p><code>never-cache</code> configures Traffic Server to never cache specified objects. <br />
+<code>ignore-no-cache</code> configures Traffic Server to ignore all
+     <code>Cache-Control: no-cache</code> headers. <br />
+<code>ignore-client-no-cache</code> configures Traffic Server to ignore
+     <code>Cache-Control: no-cache</code> headers from client requests. <br />
+<code>ignore-server-no-cache</code> configures Traffic Server to ignore
+     <code>Cache-Control: no-cache</code> headers from origin server responses.</p>
+<dl>
+<dt><em><code>pin-in-cache</code></em></dt>
+<dd>The amount of time you want to keep the object(s) in the cache. The</dd>
+</dl>
+<p>following time formats are allowed:</p>
+<p><code>d</code> for days; for example: 2d
+   <code>h</code> for hours; for example: 10h
+   <code>m</code> for minutes; for example: 5m
+   <code>s</code> for seconds; for example: 20s
+   mixed units; for example: 1h15m20s</p>
+<dl>
+<dt><em><code>revalidate</code></em></dt>
+<dd>The amount of time object(s) are to be considered fresh. Use the same</dd>
+</dl>
+<p>time formats as <code>pin-in-cache</code>.</p>
+<dl>
+<dt><em><code>ttl-in-cache</code></em></dt>
+<dd>The amount of time object(s) are to be kept in the cache, regardless of</dd>
+</dl>
+<p>Cache-Control response headers. Use the same time formats as
+   pin-in-cache and revalidate .</p>
+<h4 id="examples_1">Examples</h4>
+<p>The following example configures Traffic Server to revalidate <code>gif</code> and <code>jpeg</code>
+objects in the domain <code>mydomain.com</code> every 6 hours, and all other objects in
+<code>mydomain.com</code> every hour. The rules are applied in the order listed.</p>
+<div class="codehilite"><pre><span class="n">dest_domain</span><span class="o">=</span><span class="n">mydomain</span><span class="o">.</span><span class="n">com</span> <span class="n">suffix</span><span class="o">=</span><span class="n">gif</span> <span class="n">revalidate</span><span class="o">=</span><span class="mi">6</span><span class="n">h</span>
+<span class="n">dest_domain</span><span class="o">=</span><span class="n">mydomain</span><span class="o">.</span><span class="n">com</span> <span class="n">suffix</span><span class="o">=</span><span class="n">jpeg</span> <span class="n">revalidate</span><span class="o">=</span><span class="mi">6</span><span class="n">h</span>
+<span class="n">dest_domain</span><span class="o">=</span><span class="n">mydomain</span><span class="o">.</span><span class="n">com</span> <span class="n">revalidate</span><span class="o">=</span><span class="mi">1</span><span class="n">h</span>
+</pre></div>
+
+
+<h2 id="congestion.config">congestion.config</h2>
+<p>The <code>congestion.config</code> file enables you to configure Traffic Server to stop
+forwarding HTTP requests to origin servers when they become congested, and
+then send the client a message to retry the congested origin server later.
+After you modify the <code>congestion.control</code> file, navigate to the Traffic
+Server bin directory; then run the <code>traffic_line -x</code> command to apply
+changes. When you apply the changes to a node in a cluster, Traffic Server
+automatically applies the changes to all other nodes in the cluster.
+Traffic Server uses the <code>congestion.config</code> file only if you enable the
+<a href="http#UsingCongestionControl">Congestion Control</a> option.</p>
+<p>You can create rules in the congestion.config file to specify:
+- Which origin servers Traffic Server tracks for congestion.
+- The timeouts Traffic Server uses, depending on whether a server is
+  congested.
+- The page Traffic Server sends to the client when a server becomes
+  congested.
+- If Traffic Server tracks the origin servers per IP address or per
+  hostname.</p>
+<h4 id="format_2">Format</h4>
+<p>Each line in <code>congestion.config</code> must follow the format below. Traffic
+Server applies the rules in the order listed, starting at the top of the
+file.
+Traffic Server recognizes three space-delimited tags:</p>
+<div class="codehilite"><pre><span class="n">primary_destination</span><span class="o">=</span><span class="n">value</span> <span class="n">secondary_specifier</span><span class="o">=</span><span class="n">value</span> <span class="n">action</span><span class="o">=</span><span class="n">value</span>
+</pre></div>
+
+
+<p>The following list shows possible primary destinations with allowed
+values.</p>
+<dl>
+<dt><em><code>dest_domain</code></em></dt>
+<dd>A requested domain name.</dd>
+<dt><em><code>dest_host</code></em></dt>
+<dd>A requested hostname.</dd>
+<dt><em><code>dest_ip</code></em></dt>
+<dd>A requested IP address.</dd>
+<dt><em><code>url_regex</code></em></dt>
+<dd>A regular expression (regex) to be found in a URL.</dd>
+</dl>
+<p>The secondary specifiers are optional in the congestion.config file. The
+following list shows possible secondary specifiers with allowed values.
+You can use more than one secondary specifier in a rule; however, you
+cannot repeat a secondary specifier.</p>
+<dl>
+<dt><em><code>port</code></em></dt>
+<dd>A requested URL port or range of ports.</dd>
+<dt><em><code>prefix</code></em></dt>
+<dd>A prefix in the path part of a URL.</dd>
+</dl>
+<p>The following list shows the possible tags and their allowed values.</p>
+<dl>
+<dt><em><code>max_connection_failures</code></em></dt>
+<dd>Default: <code>5</code></dd>
+<dd>The maximum number of connection failures allowed within the fail</dd>
+</dl>
+<p>window described below before Traffic Server marks the origin server as
+   congested.</p>
+<dl>
+<dt><em><code>fail_window</code></em></dt>
+<dd>Default: <code>120</code> seconds.</dd>
+<dd>The time period during which the maximum number of connection failures</dd>
+</dl>
+<p>can occur before Traffic Server marks the origin server as congested.</p>
+<dl>
+<dt><em><code>proxy_retry_interval</code></em></dt>
+<dd>Default: <code>10</code> seconds.</dd>
+<dd>The number of seconds that Traffic Server waits before contacting a</dd>
+</dl>
+<p>congested origin server again.</p>
+<dl>
+<dt><em><code>client_wait_interval</code></em></dt>
+<dd>Default: <code>300</code> seconds.</dd>
+<dd>The number of seconds that the client is advised to wait before</dd>
+</dl>
+<p>retrying the congested origin server.</p>
+<dl>
+<dt><em><code>wait_interval_alpha</code></em></dt>
+<dd>Default: <code>30</code> seconds</dd>
+<dd>The upper limit for a random number that is added to the wait interval.</dd>
+<dt><em><code>live_os_conn_timeout</code></em></dt>
+<dd>Default: <code>60</code> seconds.</dd>
+<dd>The connection timeout to the live (uncongested) origin server.</dd>
+</dl>
+<p>If a client stops a request before the timeout occurs, then Traffic
+   Server does not record a connection failure.</p>
+<dl>
+<dt><em><code>live_os_conn_retries</code></em></dt>
+<dd>Default: <code>2</code></dd>
+<dd>The maximum number of retries allowed to the live (uncongested) origin</dd>
+</dl>
+<p>server.</p>
+<dl>
+<dt><em><code>dead_os_conn_timeout</code></em></dt>
+<dd>Default: <code>15</code> secondsj</dd>
+<dd>The connection timeout to the congested origin server.</dd>
+<dt><em><code>dead_os_conn_retries</code></em></dt>
+<dd>Default: <code>1</code></dd>
+<dd>The maximum number of retries allowed to the congested origin server.</dd>
+<dt><em><code>max_connection</code></em></dt>
+<dd>Default: <code>-1</code></dd>
+<dd>The maximum number of connections allowed from Traffic Server to the</dd>
+</dl>
+<p>origin server.</p>
+<dl>
+<dt><em><code>error_page</code></em></dt>
+<dd>Default: <code>"congestion#retryAfter"</code></dd>
+<dd>The error page sent to the client when a server is congested. You must</dd>
+</dl>
+<p>enclose the value in quotes;</p>
+<dl>
+<dt><em><code>congestion_scheme</code></em></dt>
+<dd>Default: <code>"per_ip"</code></dd>
+<dd>Specifies if Traffic Server applies the rule on a per-host (<code>"per_host"</code>)</dd>
+</dl>
+<p>or per-IP basis (<code>"per_ip"</code>). You must enclose the value in quotes.</p>
+<p>For example: if the server <code>www.host1.com</code> has two IP addresses and you
+   use the tag value <code>"per_ip"</code>, then each IP address has its own number of
+   connection failures and is marked as congested independently. If you
+   use the tag value <code>"per_host"</code> and the server <code>www.host1.com</code> is marked as
+   congested, then both IP addresses are marked as congested.</p>
+<h4 id="examples_2">Examples</h4>
+<p>The following <code>congestion.config</code> rule configures Traffic Server to stop
+forwarding requests to the server <code>www.host.com</code> on port 80 (HTTP traffic)
+if the server is congested, according to the timeouts specified. Traffic
+Server uses the default tag values because no tag has been specified.</p>
+<div class="codehilite"><pre><span class="n">dest_host</span><span class="o">=</span><span class="n">www</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">com</span> <span class="n">port</span><span class="o">=</span><span class="mi">80</span>
+</pre></div>
+
+
+<p>You can use one or more tags in a rule, but each tag must have one value
+only. If you specify no tags in the rule, then Traffic Server uses the
+default values.</p>
+<p>You can override any of the default tag values by adding configuration
+variables at the end of <code>records.config</code> as follows:</p>
+<div class="codehilite"><pre><span class="n">CONFIG</span> <span class="n">proxy</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">congestion_control</span><span class="o">.</span><span class="n">default</span><span class="o">.</span><span class="n">tag</span> <span class="n">INT</span><span class="o">|</span><span class="n">STRING</span> <span class="n">value</span>
+</pre></div>
+
+
+<p>where tag is one of the tags described in the table under
+<a href="#congestion.config">congestion.config</a> and value is the value you want to use.</p>
+<p>For example:</p>
+<div class="codehilite"><pre><span class="n">CONFIG</span> <span class="n">proxy</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">congestion_control</span><span class="o">.</span><span class="n">default</span><span class="o">.</span><span class="n">congestion_scheme</span> <span class="n">STRING</span> <span class="n">per_host</span>
+</pre></div>
+
+
+<p><strong>IMPORTANT:</strong> Rules in the congestion.config file override the following
+variables in the records.config file:</p>
+<div class="codehilite"><pre><span class="n">proxy</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">connect_attempts_max_retries</span>
+<span class="n">proxy</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">connect_attempts_max_retries_dead_server</span>
+<span class="n">proxy</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">connect_attempts_rr_retries</span>
+<span class="n">proxy</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">connect_attempts_timeout</span>
+<span class="n">proxy</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">down_server</span><span class="o">.</span><span class="n">cache_time</span>
+<span class="n">proxy</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">down_server</span><span class="o">.</span><span class="n">abort_threshold</span>
+</pre></div>
+
+
+<h2 id="hosting.config">hosting.config</h2>
+<p>The <code>hosting.config</code> file enables you to assign cache partitions to specific
+origin servers and/or domains so that you can manage cache space
+efficiently and restrict disk usage. For step-by-step instructions on
+partitioning the cache according to origin servers and/or domains, refer
+to <a href="cache">Partitioning the Cache</a> According to Origin Server or Domain.
+Before you can assign cache partitions to specific origin servers and/or
+domains, you must first partition your cache according to size and
+protocol in the <a href="#partition.config">partition.config</a> file.
+For step-by-step instructions about partitioning your cache, refer to
+<a href="cache">Partitioning the Cache</a>. For a description of the
+<code>partition.config</code> file, refer to <a href="#partition.config">partition.config</a>.</p>
+<p>After you modify hosting.config, navigate to the Traffic Server bin
+directory and run the <code>traffic_line -x</code> command to apply your changes. When
+you apply the changes to a node in a cluster, Traffic Server automatically
+applies the changes to all other nodes in the cluster.</p>
+<p><strong>IMPORTANT:</strong> The partition configuration must be the same on all nodes in a
+cluster.</p>
+<h4 id="format_3">Format</h4>
+<p>Each line in the <code>hosting.config</code> file must have one of the following
+formats:</p>
+<div class="codehilite"><pre><span class="n">hostname</span><span class="o">=</span> <span class="n">hostname</span> <span class="n">partition</span><span class="o">=</span> <span class="n">partition_numbers</span>
+<span class="n">domain</span><span class="o">=</span> <span class="n">domain_name</span> <span class="n">partition</span><span class="o">=</span> <span class="n">partition_numbers</span>
+</pre></div>
+
+
+<p>where hostname is the fully-qualified hostname of the origin server whose
+content you want to store on a particular partition (for example,
+<code>www.myhost.com</code>); <code>domain_name</code> is the domain whose content you want to store
+on a particular partition(for example, <code>mydomain.com</code>); and
+<code>partition_numbers</code> is a comma-separated list of the partitions on which you
+want to store the content that belongs to the origin server or domain
+listed. The partition numbers must be valid numbers listed in the
+<a href="#partition.config">partition.config</a> file.</p>
+<p><strong>Note:</strong> To allocate more than one partition to an origin server or domain,
+you must enter the partitions in a comma-separated list on one line, as
+shown in the example below. The <a href="#hosting.config">hosting.config</a> file
+cannot contain multiple entries for the same origin server or domain.</p>
+<h4 id="generic_partition">Generic Partition</h4>
+<p>When configuring the hosting.config file, you must assign a generic
+partition to use for content that does not belong to any of the origin
+servers or domains listed. If all partitions for a particular origin
+server become corrupt, Traffic Server will also use the generic partition
+to store content for that origin server.</p>
+<p>The generic partition must have the following format:</p>
+<div class="codehilite"><pre><span class="n">hostname</span><span class="o">=*</span> <span class="n">partition</span><span class="o">=</span><span class="n">partition_numbers</span>
+</pre></div>
+
+
+<p>where <code>partition_numbers</code> is a comma-separated list of generic partitions.</p>
+<h4 id="examples_3">Examples</h4>
+<p>The following example configures Traffic Server to store content from the
+domain <code>mydomain.com</code> in partition 1 and content from <code>www.myhost.com</code> in
+partition 2. Traffic Server stores content from all other origin servers
+in partitions 3 and 4.</p>
+<div class="codehilite"><pre><span class="n">domain</span><span class="o">=</span><span class="n">mydomain</span><span class="o">.</span><span class="n">com</span> <span class="n">partition</span><span class="o">=</span><span class="mi">1</span>
+<span class="n">hostname</span><span class="o">=</span><span class="n">www</span><span class="o">.</span><span class="n">myhost</span><span class="o">.</span><span class="n">com</span> <span class="n">partition</span><span class="o">=</span><span class="mi">2</span>
+<span class="n">hostname</span><span class="o">=*</span> <span class="n">partition</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span>
+</pre></div>
+
+
+<h2 id="icp.config">icp.config</h2>
+<p>The <code>icp.config</code> file defines ICP peers (parent and sibling caches).</p>
+<p><strong>IMPORTANT:</strong> After you modify the icp.config file, navigate to the Traffic
+Server bin directory and run the <code>traffic_line -x</code> command to apply the
+changes. When you apply the changes to a node in a cluster, Traffic Server
+automatically applies the changes to all other nodes in the cluster.</p>
+<h4 id="format_4">Format</h4>
+<p>Each line in the icp.config file contains the name and configuration
+information for a single ICP peer in the following format:</p>
+<div class="codehilite"><pre><span class="err">host</span> <span class="err">:</span> <span class="err">host_IP</span> <span class="err">:</span> <span class="err">peer_type</span> <span class="err">:</span> <span class="err">proxy_port</span> <span class="err">:</span> <span class="err">icp_port</span> <span class="err">:</span> <span class="err">MC_on</span> <span class="err">:</span> <span class="err">MC_IP</span> <span class="err">:</span> <span class="err">MC_TTL</span> <span class="err">:</span>
+</pre></div>
+
+
+<p>Each field is described in the following list.</p>
+<dl>
+<dt><code>host</code></dt>
+<dd>The hostname of the ICP peer.</dd>
+</dl>
+<p>This field is optional; if you do not specify the hostname of the ICP
+   peer, you must specify the IP address.</p>
+<dl>
+<dt><code>host _IP</code></dt>
+<dd>The IP address of the ICP peer.</dd>
+</dl>
+<p>This field is optional; if you do not specify the IP address of the ICP
+   peer, you must specify the hostname.</p>
+<dl>
+<dt><code>ctype</code></dt>
+<dd>Use the following options:</dd>
+</dl>
+<p>1 to indicate an ICP parent cache
+   2 to indicate an ICP sibling cache</p>
+<dl>
+<dt><code>proxy_port</code></dt>
+<dd>The port number of the TCP port used by the ICP peer for proxy</dd>
+</dl>
+<p>communication.</p>
+<dl>
+<dt><code>icp_port</code></dt>
+<dd>The port number of the UDP port used by the ICP peer for ICP</dd>
+</dl>
+<p>communication.</p>
+<h4 id="examples_4">Examples</h4>
+<p>The following example configuration is for three nodes: the local host,
+one parent, and one sibling.</p>
+<div class="codehilite"><pre><span class="err">localhost:0.0.0.0:3:8080:3130:0:0.0.0.0:1</span>
+<span class="err">host1:123.12.1.23:1:8080:3131:0:0.0.0.0:1</span>
+<span class="err">host2:123.12.1.24:2:8080:3131:0:0.0.0.0:1</span>
+</pre></div>
+
+
+<h2 id="ip_allowconfig__ip_allowconfig">ip_allow.config ## {#ip_allow.config}</h2>
+<p>The <code>ip_allow.config</code> file controls client access to the Traffic Server
+proxy cache. You can specify ranges of IP addresses that are allowed to
+use the Traffic Server as a web proxy cache.
+After you modify the <code>ip_allow.config</code> file, navigate to the Traffic Server
+bin directory and run the <code>traffic_line -x</code> command to apply changes. When
+you apply the changes to a node in a cluster, Traffic Server automatically
+applies the changes to all other nodes in the cluster.</p>
+<h4 id="format_5">Format</h4>
+<p>Each line in the <code>ip_allow.config</code> file must have the following format:</p>
+<div class="codehilite"><pre><span class="n">src_ip</span><span class="o">=</span><span class="n">ipaddress</span> <span class="n">action</span><span class="o">=</span><span class="n">ip_allow</span> <span class="o">|</span> <span class="n">ip_deny</span>
+</pre></div>
+
+
+<p>where ipaddress is the IP address or range of IP addresses of the clients
+allowed to access the Traffic Server proxy cache, the action <code>ip_allow</code>
+enables the specified clients to access the Traffic Server proxy cache,
+and <code>ip_deny</code> denies the specified clients to access the Traffic Server
+proxy cache.</p>
+<p>By default, the <code>ip_allow.config</code> file contains the following line, which
+allows all clients to access the Traffic Server proxy cache. To restrict
+access, comment out or delete this line before adding rules:</p>
+<div class="codehilite"><pre><span class="n">src_ip</span><span class="o">=</span><span class="mf">0.0.0.0</span><span class="o">-</span><span class="mf">255.255.255.255</span> <span class="n">action</span><span class="o">=</span><span class="n">ip_allow</span>
+</pre></div>
+
+
+<h4 id="examples_5">Examples</h4>
+<p>The following example enables all clients to access the Traffic Server
+proxy cache:</p>
+<div class="codehilite"><pre><span class="n">src_ip</span><span class="o">=</span><span class="mf">0.0.0.0</span><span class="o">-</span><span class="mf">255.255.255.255</span> <span class="n">action</span><span class="o">=</span><span class="n">ip_allow</span>
+</pre></div>
+
+
+<p>The following example allows all clients on a specific subnet to access
+the Traffic Server proxy cache:</p>
+<div class="codehilite"><pre><span class="n">src_ip</span><span class="o">=</span><span class="mf">123.12.3.000</span><span class="o">-</span><span class="mf">123.12.3.123</span> <span class="n">action</span><span class="o">=</span><span class="n">ip_allow</span>
+</pre></div>
+
+
+<p>The following example denies all clients on a specific subnet to access
+the Traffic Server proxy cache:</p>
+<div class="codehilite"><pre><span class="n">src_ip</span><span class="o">=</span><span class="mf">123.45.6.0</span><span class="o">-</span><span class="mf">123.45.6.123</span> <span class="n">action</span><span class="o">=</span><span class="n">ip_deny</span>
+</pre></div>
+
+
+<h2 id="logs.config">logs.config</h2>
+<p>The <code>logs.config</code> file establishes and formats <strong>traditional</strong>
+custom transaction log files.
+Although Traffic Server supports traditional custom logging, you
+should use the more versatile XML-based custom logging (refer to
+<a href="log">Using the Custom Format</a> and
+<a href="#logs_xml.config">logs_xml.config</a>). If you opt to use
+traditional custom logging instead of the more versatile XML-based
+custom logging, then you must enable the traditional custom logging
+option manually (refer to
+<a href="log">Support for Traditional Custom Logging</a>).</p>
+<p><strong>IMPORTANT:</strong> After you modify <code>logs.config</code>, navigate to the
+Traffic Server<code>bin</code> directory and run the <code>traffic_line -x</code> command
+to apply changes. When you apply the changes to a node in a
+cluster, Traffic Server automatically applies the changes to all
+other nodes in the cluster.</p>
+<h4 id="format_6">Format</h4>
+<p>Each line in the <code>logs.config</code> file establishes and formats a
+custom transaction log file. Lines consist of the following fields,
+separated by colons (:).</p>
+<dl>
+<dt><em><code>format</code></em></dt>
+<dd>All lines must begin with the word <code>format</code> .</dd>
+<dt><em><code>activation flag</code></em></dt>
+<dd>Specifies if the custom log file is activated. You can specify one</dd>
+</dl>
+<p>of the following options:</p>
+<div class="codehilite"><pre>   <span class="n">enabled</span>
+   <span class="n">disabled</span>
+</pre></div>
+
+
+<dl>
+<dt><em><code>unique format identifier</code></em></dt>
+<dd>You must use a unique integer for each custom log file you create.</dd>
+<dt><em><code>format name</code></em></dt>
+<dd>The name for the format you define.</dd>
+<dt><em><code>format string</code></em></dt>
+<dd>Identifies the <code>printf</code> -style format string specifying the field</dd>
+</dl>
+<p>symbols to be displayed and how they should look in ASCII. Refer to
+   this <a href="logfmts">Appendix</a> for a list of the available field
+   symbols and their meanings.</p>
+<p>Field symbols are indicated by %&lt;<code>field_symbol</code> &gt; format. For
+   example: to indicate that <code>chi</code> is the client host IP and not the
+   string <code>chi</code> to be printed, enter <code>% &lt;chi&gt;</code> .</p>
+<dl>
+<dt><em><code>file name</code></em></dt>
+<dd>The name of the custom log file you create.</dd>
+<dt><em><code>file type</code></em></dt>
+<dd>The format of the file: <code>ASCII</code> or <code>BINARY.</code></dd>
+<dt><em><code>file header data</code></em></dt>
+<dd>The header text. Enter <code>none</code> if you do not want header text; enter</dd>
+</dl>
+<p>the text of the header if you want your custom log file to have a
+   header.</p>
+<h4 id="examples_6">Examples</h4>
+<p>The following example shows a custom log format for a file named
+<strong><code>minimalist</code></strong>. It records the client host IP address (<code>chi</code>),
+the client request universal resource identifier (<code>cqu</code>), and the
+proxy response status code (<code>pssc</code>).</p>
+<div class="codehilite"><pre><span class="err">format:enabled:1:minimal:%&lt;chi&gt;</span> <span class="err">/</span> <span class="err">%&lt;cqu&gt;</span> <span class="err">/</span> <span class="err">%&lt;pssc&gt;:minimalist:ASCII:none</span>
+</pre></div>
+
+
+<p>The output file for the above example format is:</p>
+<div class="codehilite"><pre><span class="mf">123.12.3.123</span> <span class="sr">/ GET http://earth/oc</span><span class="n">ean</span><span class="sr">/index.html HTTP/</span><span class="mf">1.0</span> <span class="o">/</span> <span class="mi">200</span>
+</pre></div>
+
+
+<p>The following example shows a custom log format for a file named
+<strong><code>test</code></strong>. It records the <code>User-Agent</code>value of the client
+request header (<code>cqh</code>) and the <code>Retry-After</code> value of the proxy
+response header (<code>psh</code>).</p>
+<div class="codehilite"><pre><span class="err">format:enabled:1:test:%&lt;{User-Agent}cqh&gt;</span> <span class="err">%&lt;{Retry-After}psh&gt;:test:ASCII:none</span>
+</pre></div>
+
+
+<h4 id="welf">WELF</h4>
+<p>Traffic Server supports <strong>WELF</strong>, the WebTrends Enhanced Log
+format, so you can analyze Traffic Server log files with WebTrends
+reporting tools. A predefined custom format for WELF is provided in
+the <code>logs.config</code> file. To create a WELF format log file, comment
+out the following section at the end of the file and replace
+<code>&lt;FORMAT_ID&gt;</code> with a unique integer.</p>
+<div class="codehilite"><pre><span class="c">#format:enabled:&lt;FORMAT_ID&gt;:welf:id=firewall time=&quot;%&lt;cqtd&gt; %&lt;cqtt&gt;&quot; fw=%&lt;phn&gt; pri=6 proto=%&lt;cqus&gt; duration=%&lt;ttmsf&gt; sent=%&lt;psql&gt; rcvd=%&lt;cqhl&gt; src=%&lt;chi&gt; dst=%&lt;shi&gt; dstname=%&lt;shn&gt; user=%&lt;caun&gt; op=%&lt;cqhm&gt; arg=&quot;%&lt;cqup&gt;&quot; result=%&lt;pssc&gt; ref=&quot;%&lt;{Referer}cqh&gt;&quot; agent=&quot;%&lt;{user-agent}cqh&gt;&quot; cache=%&lt;crc&gt;:welf:ASCII:none</span>
+
+<span class="c">#</span>
+</pre></div>
+
+
+<h2 id="log_hostsconfig___log_hostsconfig">log_hosts.config  ## {#log_hosts.config}</h2>
+<p>To record HTTP transactions for different origin servers in
+separate log files, you must list each origin server hostname in
+the <code>log_hosts.config</code> file. In addition, you must enable the
+<a href="log">HTTP Host Log Splitting</a> option. You should use the same
+<code>log_hosts.config</code> file on every Traffic Server node in your
+cluster. After you modify the <code>log_hosts.config</code> file,
+navigate to the Traffic Server<code>bin</code> directory and run the
+<code>traffic_line -x</code> command to apply the changes. When you apply the
+changes to a node in a cluster, Traffic Server automatically
+applies the changes to all other nodes in the cluster.</p>
+<h4 id="format_7">Format</h4>
+<p>Each line in the <code>log_hosts.config</code> file has the following format:</p>
+<p><em><code>hostname</code></em></p>
+<p>where <em><code>hostname</code></em> is the hostname of the origin server.</p>
+<p><strong>Tip:</strong> You can specify keywords in the <code>log_hosts.config</code> file to
+record all transactions from origin servers with the specified
+keyword in their names in a separate log file. See the example
+below.</p>
+<h4 id="examples_7">Examples</h4>
+<p>The following example configures Traffic Server to create separate
+log files containing all HTTP transactions for the origin servers
+<code>webserver1</code>, <code>webserver2</code>, and <code>webserver3</code>.</p>
+<div class="codehilite"><pre><span class="n">webserver1</span>
+<span class="n">webserver2</span>
+<span class="n">webserver3</span>
+</pre></div>
+
+
+<p>The following example records all HTTP transactions from origin
+servers that contain <code>sports</code> in their names. For example:
+<code>sports.yahoo.com</code> and <code>www.foxsports.com</code> in a log file called
+<code>squid-sport.log</code> (the Squid format is enabled).</p>
+<div class="codehilite"><pre><span class="n">sports</span>
+</pre></div>
+
+
+<h2 id="logs_xmlconfig___logs_xmlconfig">logs_xml.config  ## {#logs_xml.config}</h2>
+<p>The <code>logs_xml.config</code> file defines the custom log file formats,
+filters, and processing options. The format of this file is modeled
+after <strong>XML</strong>, the Extensible Markup Language.</p>
+<h4 id="format_8">Format</h4>
+<p>The <code>logs_xml.config</code> file contains the specifications below:</p>
+<ul>
+<li><code>LogFormat</code> specifies the fields to be gathered from each
+  protocol event access.</li>
+<li><code>LogFilter</code> specifies the filters that are used to include or
+  exclude certain entries being logged based on the value of a field
+  within that entry.</li>
+<li><code>LogObject</code> specifies an object that contains a particular
+  format, a local filename, filters, and collation servers.</li>
+</ul>
+<p>The <code>logs_xml.config</code> file ignores extra white space, blank lines,
+and all comments.</p>
+<h4 id="logformat">LogFormat</h4>
+<p>The following list shows <strong><code>LogFormat</code></strong> specifications.</p>
+<dl>
+<dt><code>&lt;Name = "valid_format_name"/&gt;</code></dt>
+<dd>Required. Valid format names include any name except <code>squid</code>,</dd>
+</dl>
+<p><code>common</code>, <code>extended</code>, or <code>extended2</code>, which are pre-defined
+  formats. There is no default for this tag.</p>
+<dl>
+<dt><code>&lt;Format = "valid_format_specification"/&gt;</code></dt>
+<dd>Required. A valid format specification is a printf-style string</dd>
+</dl>
+<p>describing each log entry when formatted for ASCII output. Use
+   <code>%&lt;</code> <code>*field*</code> <code>&gt;</code> as a placeholder for valid field names. For
+   more information, refer to
+   <a href="logfmts#custom-logging-fields">Custom Logging Fields</a>.</p>
+<p>The specified field can be one of the following types:</p>
+<p>Simple. For example: <code>%&lt;cqu&gt;</code> <br />
+   A field within a container, such as an HTTP header or a statistic.
+   Fields of this type have the syntax:</p>
+<div class="codehilite"><pre>   <span class="c">%&lt;{ field } containe&gt;</span>
+</pre></div>
+
+
+<p>Aggregates, such as <code>COUNT</code>, <code>SUM</code>, <code>AVG</code>, <code>FIRST</code>, <code>LAST</code>. Fields
+   of this type have the syntax: <code>%&lt;operator (</code> <em><code>field</code></em> <code>)&gt;</code> <br />
+<strong>Note:</strong> You cannot create a format specification that contains
+   both aggregate operators and regular fields.</p>
+<dl>
+<dt><code>&lt;Interval = "aggregate_interval_secs"/&gt;</code></dt>
+<dd>Use this tag when the format contains aggregate operators. The</dd>
+</dl>
+<p>value "<code>aggregate_interval_secs</code>" represents the number of seconds
+   between individual aggregate values being produced.</p>
+<p>The valid set of aggregate operators are:</p>
+<div class="codehilite"><pre><span class="n">COUNT</span>
+<span class="n">SUM</span>
+<span class="n">AVG</span>
+<span class="n">FIRST</span>
+<span class="n">LAST</span>
+</pre></div>
+
+
+<h3 id="logfilters">LogFilters</h3>
+<p>The following list shows the <code>LogFilter</code> specifications.</p>
+<dl>
+<dt><code>&lt;Name = "valid_filter_name"/&gt;</code></dt>
+<dd>Required. All filters must be uniquely named.</dd>
+<dt><code>&lt;Condition = "valid_log_field valid_operator valid_comparison_value"/&gt;</code></dt>
+<dd>Required. This field contains the following elements:</dd>
+</dl>
+<p><strong><code>valid_log_field</code></strong> - the field that will be compared against
+   the given value. For more information, refer to
+   <a href="logfmts#cross-reference">Logging Format Cross-Reference</a>.</p>
+<p><strong><code>valid_operator_field</code></strong> - any one of the following: <code>MATCH</code>,
+   <code>CASE_INSENSITIVE_MATCH</code>, <code>CONTAIN</code>, <code>CASE_INSENSITIVE_CONTAIN</code>.</p>
+<ul>
+<li><code>MATCH</code> is true if the field and value are identical
+   (case-sensitive).</li>
+<li><code>CASE_INSENSITIVE_MATCH</code> is similar to <code>MATCH</code>, except that it
+   is case-<strong>insensitive</strong>.</li>
+<li><code>CONTAIN</code> is true if the field contains the value (the value is
+       a substring of the field).</li>
+<li><code>CASE_INSENSITIVE_CONTAIN</code> is a case-insensitive version of
+   <code>CONTAIN</code>.</li>
+</ul>
+<p><strong><code>valid_comparison_value</code></strong> - any string or integer matching
+   the field type. For integer values, all of the operators are
+   equivalent and mean that the field must be equal to the specified
+   value.</p>
+<p><strong>Note:</strong> There are no negative comparison operators. If you want to
+   specify a negative condition, then use the <code>Action</code> field to
+   <code>REJECT</code> the record.</p>
+<dl>
+<dt><code>&lt;Action = "valid_action_field"/&gt;</code></dt>
+<dd>This instructs Traffic Server to either accept or reject records</dd>
+</dl>
+<p>that satisfy the filter condition. <code>&lt;br /&gt;</code>Required:<code>ACCEPT</code> or
+   <code>REJECT</code> .</p>
+<h3 id="LogObject">LogObject</h3>
+<p>The following list shows the <code>LogObject</code> specifications.</p>
+<dl>
+<dt><code>&lt;Format = "valid_format_name"/&gt;</code></dt>
+<dd>Required. Valid format names include the predefined logging</dd>
+</dl>
+<p>formats: <code>squid</code>, <code>common</code>, <code>extended</code>, and <code>extended2</code>, as well as
+   any previously-defined custom log formats. There is no default for
+   this tag.</p>
+<dl>
+<dt><code>&lt;Filename = "file_name"/&gt;</code></dt>
+<dd>Required. The filename to which the given log file is written on</dd>
+</dl>
+<p>the local file system or on a remote collation server. No local log
+   file will be created if you fail to specify this tag. All filenames
+   are relative to the default logging directory.</p>
+<p>If the name does not contain an extension (for example, <code>squid</code>),
+   then the extension <code>.log</code> is automatically appended to it for ASCII
+   logs and <code>.blog</code> for binary logs (refer to
+   <a href="files#0_73225">Mode = "valid_logging_mode"</a>).</p>
+<p>If you do not want an extension to be added, then end the filename with a
+   single (.) dot (for example: <code>squid.</code> ).</p>
+<dl>
+<dt><code>&lt;Mode = "valid_logging_mode"/&gt;</code></dt>
+<dd>Valid logging modes include <code>ascii</code> , <code>binary</code> , and <code>ascii_pipe</code> .</dd>
+</dl>
+<p>The default is <code>ascii</code> .</p>
+<ul>
+<li>Use <code>ascii</code> to create event log files in human-readable form
+     (plain ASCII).</li>
+<li>Use <code>binary</code> to create event log files in binary format.
+     Binary log files generate lower system overhead and occupy less
+     space on the disk (depending on the information being logged). You
+     must use the <code>logcat</code> utility to translate binary log files to
+     ASCII format before you can read them.</li>
+<li>Use <code>ascii_pipe</code> to write log entries to a UNIX named pipe (a
+     buffer in memory). Other processes can then read the data using
+     standard I/O functions. The advantage of using this option is that
+     Traffic Server does not have to write to disk, which frees disk
+     space and bandwidth for other tasks. In addition, writing to a pipe
+     does not stop when logging space is exhausted because the pipe does
+     not use disk space.</li>
+</ul>
+<p>If you are using a collation server, then the log is written to a
+   pipe on the collation server. A local pipe is created even before a
+   transaction is processed, so you can see the pipe right after
+   Traffic Server starts. Pipes on a collation server, however, <em>are</em>
+   created when Traffic Server starts.</p>
+<dl>
+<dt><code>&lt;Filters = "list_of_valid_filter_names"/&gt;</code></dt>
+<dd>A comma-separated list of names of any previously-defined log</dd>
+</dl>
+<p>filters. If more than one filter is specified, then all filters
+   must accept a record for the record to be logged.</p>
+<dl>
+<dt><code>&lt;Protocols = "list_of_valid_protocols"/&gt;</code></dt>
+<dd>A comma-separated list of the protocols this object should log.</dd>
+</dl>
+<p>Valid protocol names for this release are <code>HTTP</code> (FTP is
+   deprecated).</p>
+<dl>
+<dt><code>&lt;ServerHosts = "list_of_valid_servers"/&gt;</code></dt>
+<dd>A comma-separated list of valid hostnames.This tag indicates that</dd>
+</dl>
+<p>only entries from the named servers will be included in the file.</p>
+<dl>
+<dt><code>&lt;CollationHosts = "list_of_valid_hostnames"/&gt;</code></dt>
+<dd>A comma-separated list of collation servers to which all log</dd>
+</dl>
+<p>entries (for this object) are forwarded. Collation servers can be
+   specified by name or IP address. Specify the collation port with a
+   colon after the name; for example, <code>host:port</code> .</p>
+<dl>
+<dt><code>&lt;Header = "header"/&gt;</code></dt>
+<dd>The header text you want the log files to contain. The header text</dd>
+</dl>
+<p>appears at the beginning of the log file, just before the first
+   record.</p>
+<dl>
+<dt><code>&lt;RollingEnabled = "truth value"/&gt;</code></dt>
+<dd>Enables or disables log file rolling for the <code>LogObject</code>. This</dd>
+</dl>
+<p>setting overrides the value for the
+   <em><code>proxy.config.log.rolling_enabled</code></em> variable in the
+   <code>records.config</code> file. Set <em><code>truth value</code></em> to one of the
+   following values:</p>
+<p><code>0</code> to disable rolling for this particular <code>LogObject</code>. <br />
+<code>1</code> to roll log files at specific intervals during the day (you
+   specify time intervals with the <code>RollingIntervalSec</code> and
+   <code>RollingOffsetHr</code> fields). <br />
+<code>2</code> to roll log files when they reach a certain size (you specify
+   the size with the<code>RollingSizeMb</code> field). <br />
+<code>3</code> to roll log files at specific intervals during the day or when
+   they reach a certain size (whichever occurs first). <br />
+<code>4</code> to roll log files at specific intervals during the day when log
+   files reach a specific size (at a specified time if the file is of
+   the specified size).</p>
+<dl>
+<dt><code>&lt;RollingIntervalSec = "seconds"/&gt;</code></dt>
+<dd>The seconds between log file rolling for the <code>LogObject</code>; enables</dd>
+</dl>
+<p>you to specify different rolling intervals for different
+   <code>LogObjects</code>.
+   This setting overrides the value for
+   <em><code>proxy.config.log.rolling_interval_sec</code></em> in the
+   <code>records.config</code> file.</p>
+<dl>
+<dt><code>&lt;RollingOffsetHr = "hour"/&gt;</code></dt>
+<dd>Specifies an hour (from 0 to 23) at which rolling is guaranteed to</dd>
+</dl>
+<p>align. Rolling might start before then, but a rolled file will be
+   produced only at that time. The impact of this setting is only
+   noticeable if the rolling interval is larger than one hour.
+   This setting overrides the configuration setting
+   for <em><code>proxy.config.log.rolling_offset_hr</code></em> in the
+   <code>records.config</code> file.</p>
+<dl>
+<dt><code>&lt;RollingSizeMb = "size_in_MB"/&gt;</code></dt>
+<dd>The size at which log files are rolled.</dd>
+</dl>
+<h4 id="examples_8">Examples</h4>
+<p>The following is an example of a <strong><code>LogFormat</code></strong> specification
+that collects information using three common fields:</p>
+<div class="codehilite"><pre>     <span class="nt">&lt;LogFormat&gt;</span>
+         <span class="nt">&lt;Name</span> <span class="err">=</span> <span class="err">&quot;minimal&quot;</span><span class="nt">/&gt;</span>
+         <span class="nt">&lt;Format</span> <span class="err">=</span> <span class="err">&quot;%&lt;chi</span><span class="nt">&gt;</span> : %<span class="nt">&lt;cqu&gt;</span> : %<span class="nt">&lt;pssc&gt;</span>&quot;/&gt;
+     <span class="nt">&lt;/LogFormat&gt;</span>
+</pre></div>
+
+
+<p>The following is an example of a <strong><code>LogFormat</code></strong> specification
+that uses aggregate operators:</p>
+<div class="codehilite"><pre>     <span class="nt">&lt;LogFormat&gt;</span>
+         <span class="nt">&lt;Name</span> <span class="err">=</span> <span class="err">&quot;summary&quot;</span><span class="nt">/&gt;</span>
+         <span class="nt">&lt;Format</span> <span class="err">=</span> <span class="err">&quot;%&lt;LAST(cqts)</span><span class="nt">&gt;</span> : %<span class="nt">&lt;COUNT</span><span class="err">(*)</span><span class="nt">&gt;</span> : %<span class="nt">&lt;SUM</span><span class="err">(psql)</span><span class="nt">&gt;</span>&quot;/&gt;
+         <span class="nt">&lt;Interval</span> <span class="err">=</span> <span class="err">&quot;10&quot;</span><span class="nt">/&gt;</span>
+     <span class="nt">&lt;/LogFormat&gt;</span>
+</pre></div>
+
+
+<p>The following is an example of a <strong><code>LogFilter</code></strong> that will cause
+only <code>REFRESH_HIT</code> entries to be logged:</p>
+<div class="codehilite"><pre>     <span class="nt">&lt;LogFilter&gt;</span>
+          <span class="nt">&lt;Name</span> <span class="err">=</span> <span class="err">&quot;only_refresh_hits&quot;</span><span class="nt">/&gt;</span>
+          <span class="nt">&lt;Action</span> <span class="err">=</span> <span class="err">&quot;ACCEPT&quot;</span><span class="nt">/&gt;</span>
+          <span class="nt">&lt;Condition</span> <span class="err">=</span> <span class="err">&quot;%&lt;pssc</span><span class="nt">&gt;</span> MATCH REFRESH_HIT&quot;/&gt;
+     <span class="nt">&lt;/LogFilter&gt;</span>
+</pre></div>
+
+
+<p><strong>Note:</strong> When specifying the field in the filter condition, you
+can omit the<code>%&lt;&gt;</code>. This means that the filter below is equivalent
+to the example directly above:</p>
+<div class="codehilite"><pre>     <span class="nt">&lt;LogFilter&gt;</span>
+         <span class="nt">&lt;Name</span> <span class="err">=</span> <span class="err">&quot;only_refresh_hits&quot;</span><span class="nt">/&gt;</span>
+         <span class="nt">&lt;Action</span> <span class="err">=</span> <span class="err">&quot;ACCEPT&quot;</span><span class="nt">/&gt;</span>
+         <span class="nt">&lt;Condition</span> <span class="err">=</span> <span class="err">&quot;pssc</span> <span class="err">MATCH</span> <span class="err">REFRESH_HIT&quot;</span><span class="nt">/&gt;</span>
+     <span class="nt">&lt;/LogFilter&gt;</span>
+</pre></div>
+
+
+<p>The following is an example of a <strong><code>LogObject</code></strong> specification
+that creates a local log file for the minimal format defined
+earlier. The log filename will be <code>minimal.log</code> because this is an
+ASCII log file (the default).</p>
+<div class="codehilite"><pre>     <span class="nt">&lt;LogObject&gt;</span>
+         <span class="nt">&lt;Format</span> <span class="err">=</span> <span class="err">&quot;minimal&quot;</span><span class="nt">/&gt;</span>
+         <span class="nt">&lt;Filename</span> <span class="err">=</span> <span class="err">&quot;minimal&quot;</span><span class="nt">/&gt;</span>
+     <span class="nt">&lt;/LogObject&gt;</span>
+</pre></div>
+
+
+<p>The following is an example of a <strong><code>LogObject</code></strong> specification
+that includes only HTTP requests served by hosts in the domain
+<code>company.com</code> or by the specific server <code>server.somewhere.com</code>. Log
+entries are sent to port 4000 of the collation host
+<code>logs.company.com</code> and to port 5000 of the collation host
+<code>209.131.52.129.</code></p>
+<div class="codehilite"><pre>     <span class="nt">&lt;LogObject&gt;</span>
+          <span class="nt">&lt;Format</span> <span class="err">=</span> <span class="err">&quot;minimal&quot;</span><span class="nt">/&gt;</span>
+          <span class="nt">&lt;Filename</span> <span class="err">=</span> <span class="err">&quot;minimal&quot;</span><span class="nt">/&gt;</span>
+          <span class="nt">&lt;ServerHosts</span> <span class="err">=</span> <span class="err">&quot;company.com,server.somewhere.com&quot;</span><span class="nt">/&gt;</span>
+          <span class="nt">&lt;Protocols</span> <span class="err">=</span> <span class="err">&quot;http&quot;</span><span class="nt">/&gt;</span>
+          <span class="nt">&lt;CollationHosts</span> <span class="err">=</span> <span class="err">&quot;logs.company.com:4000,209.131.52.129:5000&quot;</span><span class="nt">/&gt;</span>
+     <span class="nt">&lt;/LogObject&gt;</span>
+</pre></div>
+
+
+<h4 id="welf_1">WELF</h4>
+<p>Traffic Server supports WELF (WebTrends Enhanced Log Format) so you
+can analyze Traffic Server log files with WebTrends reporting
+tools. A predefined <code>&lt;LogFormat&gt;</code> that is compatible with WELF is
+provided at the end of the <code>logs.config</code> file (shown below).
+To create a WELF format log file, create a <code>&lt;LogObject&gt;</code> that
+uses this predefined format.</p>
+<div class="codehilite"><pre>     <span class="nt">&lt;LogFormat&gt;</span>
+         <span class="nt">&lt;Name</span> <span class="err">=</span> <span class="err">&quot;welf&quot;</span><span class="nt">/&gt;</span>
+         <span class="nt">&lt;Format</span> <span class="err">=</span> <span class="err">&quot;</span><span class="na">id=</span><span class="s">firewall</span> <span class="na">time=</span><span class="s">\&quot;%&lt;cqtd</span><span class="nt">&gt;</span> %<span class="nt">&lt;cqtt&gt;</span>\&quot; fw=%<span class="nt">&lt;phn&gt;</span> pri=6
+         proto=%<span class="nt">&lt;cqus&gt;</span> duration=%<span class="nt">&lt;ttmsf&gt;</span> sent=%<span class="nt">&lt;psql&gt;</span> rcvd=%<span class="nt">&lt;cqhl&gt;</span>
+         src=%<span class="nt">&lt;chi&gt;</span> dst=%<span class="nt">&lt;shi&gt;</span> dstname=%<span class="nt">&lt;shn&gt;</span> user=%<span class="nt">&lt;caun&gt;</span> op=%<span class="nt">&lt;cqhm&gt;</span>
+         arg=\&quot;%<span class="nt">&lt;cqup&gt;</span>\&quot; result=%<span class="nt">&lt;pssc&gt;</span> ref=\&quot;%<span class="err">&lt;</span>{Referer}cqh&gt;\&quot;
+         agent=\&quot;%<span class="err">&lt;</span>{user-agent}cqh&gt;\&quot; cache=%<span class="nt">&lt;crc&gt;</span>&quot;/&gt;
+     <span class="nt">&lt;/LogFormat&gt;</span>
+</pre></div>
+
+
+<h2 id="parent.config">parent.config</h2>
+<p>The <code>parent.config</code> file identifies the parent proxies used in an
+cache hierarchy. Use this file to perform the following
+configuration:</p>
+<ul>
+<li>Set up parent cache hierarchies, with multiple parents and
+  parent failover</li>
+<li>Configure selected URL requests to bypass parent proxies</li>
+</ul>
+<p>Traffic Server uses the <code>parent.config</code> file only when the parent
+caching option is enabled (refer to
+<a href="hier">Configuring Traffic Server to Use a Parent Cache</a>).</p>
+<p><strong>IMPORTANT:</strong> After you modify the <code>parent.config</code> file, navigate
+to the Traffic Server<code>bin</code> directory and run the <code>traffic_line -x</code>
+command to apply your changes. When you apply the changes to one
+node in a cluster, Traffic Server automatically applies the changes
+to all other nodes in the cluster.</p>
+<h4 id="format_9">Format</h4>
+<p>Each line in the <code>parent.config</code> file must contain a parent caching
+rule. Traffic Server recognizes three space-delimited tags:</p>
+<div class="codehilite"><pre><span class="n">primary_destination</span><span class="o">=</span><span class="n">value</span> <span class="n">secondary_specifie</span><span class="o">=</span><span class="n">value</span>  <span class="n">action</span><span class="o">=</span><span class="n">value</span>
+</pre></div>
+
+
+<p>The following list shows the possible primary destinations and
+their allowed values.</p>
+<dl>
+<dt><em><code>dest_domain</code></em></dt>
+<dd>A requested domain name.</dd>
+<dt><em><code>dest_host</code></em></dt>
+<dd>A requested hostname.</dd>
+<dt><em><code>dest_ip</code></em></dt>
+<dd>A requested IP address or range of IP addresses separated by a dash</dd>
+</dl>
+<p>(-).</p>
+<dl>
+<dt><em><code>url_regex</code></em></dt>
+<dd>A regular expression (regex) to be found in a URL</dd>
+</dl>
+<p>The secondary specifiers are optional in the <code>parent.config</code> file.
+The following list shows the possible secondary specifiers and
+their allowed values.</p>
+<dl>
+<dt><em><code>port</code></em></dt>
+<dd>A requested URL port.</dd>
+<dt><em><code>scheme</code></em></dt>
+<dd>A request URL protocol: <code>http</code> or <code>https</code>.</dd>
+<dt><em><code>prefix</code></em></dt>
+<dd>A prefix in the path part of a URL.</dd>
+<dt><em><code>suffix</code></em></dt>
+<dd>A file suffix in the URL.</dd>
+<dt><em><code>method</code></em></dt>
+<dd>
+<p>A request URL method. It can be one of the following:</p>
+<p>get
+post
+put
+trace</p>
+</dd>
+<dt><em><code>time</code></em></dt>
+<dd>
+<p>A time range, such as 08:00-14:00, during which the parent cache is</p>
+</dd>
+</dl>
+<p>used to serve requests.</p>
+<dl>
+<dt><em><code>src_ip</code></em></dt>
+<dd>A client IP address.</dd>
+</dl>
+<p>The following list shows the possible actions and their allowed
+values.</p>
+<dl>
+<dt><code>parent</code></dt>
+<dd>An ordered list of parent servers. If the request cannot be handled</dd>
+</dl>
+<p>by the last parent server in the list, then it will be routed to
+   the origin server. You can specify either a hostname or an IP
+   address, but; you must specify the port number.</p>
+<dl>
+<dt><code>round_robin</code></dt>
+<dd>One of the following values:</dd>
+</dl>
+<p><code>true</code> - Traffic Server goes through the parent cache list in a
+   round robin-based on client IP address.
+   <code>strict</code> - Traffic Server machines serve requests strictly in turn.
+   For example: machine <code>proxy1</code> serves the first request, <code>proxy2</code>
+   serves the second request, and so on.
+   <code>false</code> - Round robin selection does not occur.</p>
+<dl>
+<dt><code>go_direct</code></dt>
+<dd>One of the following values:</dd>
+</dl>
+<p><code>true</code> - requests bypass parent hierarchies and go directly to the
+   origin server.
+   <code>false</code> - requests do not bypass parent hierarchies.</p>
+<h3 id="examples_9">Examples</h3>
+<p>The following rule configures a parent cache hierarchy consisting
+of Traffic Server (which is the child) and two parents, <code>p1.x.com</code>
+and <code>p2.x.com</code>. Traffic Server forwards the requests it cannot
+serve to the parent servers <code>p1.x.com</code> and <code>p2.x.com</code> in a
+round-robin fashion because:</p>
+<div class="codehilite"><pre><span class="n">round_robin</span><span class="o">=</span><span class="n">true</span>
+<span class="n">dest_domain</span><span class="o">=.</span> <span class="n">method</span><span class="o">=</span><span class="n">get</span> <span class="n">parent</span><span class="o">=</span><span class="s">&quot;p1.x.com:8080; p2.y.com:8080&quot;</span> <span class="n">round_robin</span><span class="o">=</span><span class="n">true</span>
+</pre></div>
+
+
+<p>The following rule configures Traffic Server to route all requests
+containing the regular expression <code>politics</code> and the path
+/<code>viewpoint</code> directly to the origin server (bypassing any parent
+hierarchies):
+<code>url_regex=politics prefix=/viewpoint go_direct=true</code></p>
+<p>Every line in the <code>parent.config</code> file must contain either a
+<code>parent=</code> or <code>go_direct=</code> directive.</p>
+<h2 id="parition.config">partition.config</h2>
+<p>The <code>partition.config</code> file enables you to manage your cache space
+more efficiently and restrict disk usage by creating cache
+partitions of different sizes for specific protocols. You can
+further configure these partitions to store data from certain
+origin servers and/or domains in
+the <a href="#hosting.config">hosting.config</a> file.</p>
+<p><strong>IMPORTANT:</strong> The partition configuration must be the same on all
+nodes in a cluster. You must stop Traffic Server before you change
+the cache partition size and protocol assignment. For step-by-step
+instructions about partitioning the cache, refer to
+<a href="cache">Partitioning the Cache</a>.</p>
+<h4 id="format_10">Format</h4>
+<p>For each partition you want to create, enter a line with the
+following format:</p>
+<div class="codehilite"><pre><span class="n">partition</span><span class="o">=</span><span class="n">partition_number</span>  <span class="n">scheme</span><span class="o">=</span><span class="n">protocol_type</span>  <span class="n">size</span><span class="o">=</span><span class="n">partition_size</span>
+</pre></div>
+
+
+<p>where <em><code>partition_number</code></em> is a number between 1 and 255 (the
+maximum number of partitions is 255) and <em><code>protocol_type</code></em> is
+<code>http</code>. Traffic Server supports <code>http</code> for HTTP partition types;
+<em><code>partition_size</code></em> is the amount of cache space allocated to
+the partition. This value can be either a percentage of the total
+cache space or an absolute value. The absolute value must be a
+multiple of 128 MB, where 128 MB is the smallest value. If you
+specify a percentage, then the size is rounded down to the closest
+multiple of 128 MB.</p>
+<p>Each partition is striped across several disks to achieve parallel
+I/O. For example: if there are four disks, then a 1-GB partition
+will have 256 MB on each disk (assuming each disk has enough free
+space available). If you do not allocate all the disk space in the
+cache, then the extra disk space is not used. You can use the extra
+space later to create new partitions without deleting and clearing
+the existing partitions.</p>
+<h4 id="examples_10">Examples</h4>
+<p>The following example partitions the cache evenly between HTTP and
+HTTPS requests:</p>
+<div class="codehilite"><pre><span class="n">partition</span><span class="o">=</span><span class="mi">1</span> <span class="n">scheme</span><span class="o">=</span><span class="n">http</span> <span class="n">size</span><span class="o">=</span><span class="mi">50</span><span class="nv">%</span>
+<span class="nv">partition</span><span class="o">=</span><span class="mi">2</span> <span class="n">scheme</span><span class="o">=</span><span class="n">https</span> <span class="n">size</span><span class="o">=</span><span class="mi">50</span><span class="nv">%</span>
+</pre></div>
+
+
+<h2 id="records.config">records.config</h2>
+<p>The <code>records.config</code> file is a list of configurable variables used
+by the Traffic Server software. Many of the variables in the
+<code>records.config</code> file are set automatically when you set
+configuration options in Traffic Line or Traffic Shell. After you
+modify the <code>records.config</code> file, navigate to the Traffic
+Server<code>bin</code> directory and run the command <code>traffic_line -x</code> to
+apply the changes. When you apply changes to one node in a cluster,
+Traffic Server automatically applies the changes to all other nodes
+in the cluster.</p>
+<h4 id="format_11">Format</h4>
+<p>Each variable has the following format:</p>
+<div class="codehilite"><pre><span class="n">CONFIG</span> <span class="n">variable_name</span> <span class="n">DATATYPE</span> <span class="n">variable_value</span>
+</pre></div>
+
+
+<p>where <code>DATATYPE</code> is <code>INT</code> (integer), <code>STRING</code> (string), or <code>FLOAT</code>
+(floating point).</p>
+<h4 id="examples_11">Examples</h4>
+<p>In the following example, the
+variable <em><code>proxy.config.proxy_name</code></em> is a <code>STRING</code> datatype
+with the value <code>my_server</code>. This means that the name of the Traffic
+Server proxy is <code>my_server</code>.</p>
+<div class="codehilite"><pre><span class="n">CONFIG</span> <span class="n">proxy</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">proxy_name</span> <span class="n">STRING</span> <span class="n">my_server</span>
+</pre></div>
+
+
+<p>In the following example, the variable
+<em><code>proxy.config.arm.enabled</code></em> is a yes/no flag. A value of
+<code>0</code> (zero) disables the option; a value of <code>1</code> enables the option.</p>
+<div class="codehilite"><pre><span class="n">CONFIG</span> <span class="n">proxy</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">arm</span><span class="o">.</span><span class="n">enabled</span> <span class="n">INT</span> <span class="mi">0</span>
+</pre></div>
+
+
+<p>In the following example, the variable sets the cluster startup
+timeout to 10 seconds.</p>
+<div class="codehilite"><pre><span class="n">CONFIG</span> <span class="n">proxy</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">cluster</span><span class="o">.</span><span class="n">startup_timeout</span> <span class="n">INT</span> <span class="mi">10</span>
+</pre></div>
+
+
+<h4 id="configuration_variables">Configuration Variables</h4>
+<p>The following list describes the configuration variables available in
+the <code>records.config</code> file.</p>
+<h3 id="records.config-system-variables">System Variables</h3>
+<dl>
+<dt><em><code>proxy.config.product_company</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>Apache Software Foundation</code></dd>
+<dd>The name of the organization developing Traffic Server.</dd>
+<dt><em><code>proxy.config.product_vendor</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>Apache</code></dd>
+<dd>The name of the vendor providing Traffic Server.</dd>
+<dt><em><code>proxy.config.product_name</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>Traffic Server</code></dd>
+<dd>The name of the product.</dd>
+<dt><em><code>proxy.config.proxy_name</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>&lt;proxy_name&gt;</code></dd>
+<dd>The name of the Traffic Server node.</dd>
+<dt><em><code>proxy.config.bin_path</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>bin</code></dd>
+<dd>The location of the Traffic Server <code>bin</code> directory.</dd>
+<dt><em><code>proxy.config.proxy_binary</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>traffic_server</code></dd>
+<dd>The name of the executable that runs the <code>traffic_server</code> process.</dd>
+<dt><em><code>proxy.config.proxy_binary_opts</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>-M</code></dd>
+<dd>The command-line options for starting Traffic Server.</dd>
+<dt><em><code>proxy.config.manager_binary</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>traffic_manager</code></dd>
+<dd>The name of the executable that runs the <code>traffic_manager</code></dd>
+</dl>
+<p>process.</p>
+<dl>
+<dt><em><code>proxy.config.cli_binary</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>traffic_line</code></dd>
+<dd>The name of the executable that runs the command-line interface</dd>
+</dl>
+<p>(Traffic Line).</p>
+<dl>
+<dt><em><code>proxy.config.watch_script</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>traffic_cop</code></dd>
+<dd>The name of the executable that runs the <code>traffic_cop</code> process.</dd>
+<dt><em><code>proxy.config.env_prep</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>example_prep.sh</code></dd>
+<dd>The script executed before the <code>traffic_manager</code> process spawns the</dd>
+</dl>
+<p><code>traffic_server</code> process.</p>
+<dl>
+<dt><em><code>proxy.config.config_dir</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>config</code></dd>
+<dd>The directory that contains Traffic Server configuration files.</dd>
+<dt><em><code>proxy.config.temp_dir</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>/tmp</code></dd>
+<dd>The directory used for Traffic Server temporary files.</dd>
+<dt><em><code>proxy.config.alarm_email</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd>The email address to which Traffic Server sends alarm messages.</dd>
+</dl>
+<p>During a custom Traffic Server installation, you can specify the
+   email address; otherwise, Traffic Server uses the Traffic Server
+   user account name as the default value for this variable.</p>
+<dl>
+<dt><em><code>proxy.config.syslog_facility</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>LOG_DAEMON</code></dd>
+<dd>The facility used to record system log files.</dd>
+</dl>
+<p>Refer to
+   <a href="log#UnderstandingTrafficEdgeLogFiles">Understanding Traffic Server Log Files</a>.</p>
+<dl>
+<dt><em><code>proxy.config.cop.core_signal</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>0</code></dd>
+<dd>The signal sent to <code>traffic_cop</code>'s managed processes to stop them.</dd>
+</dl>
+<p>0 = no signal is sent.</p>
+<dl>
+<dt><em><code>proxy.config.cop.linux_min_swapfree_kb</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>10240</code></dd>
+<dd>The minimum amount of free swap space allowed before Traffic Server</dd>
+</dl>
+<p>stops the <code>traffic_server</code>and <code>traffic_manager</code> processes to
+   prevent the system from hanging.</p>
+<p>This configuration variable applies if swap is enabled in Linux 2.2
+   only.</p>
+<dl>
+<dt><em><code>proxy.config.output.logfile</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>traffic.out</code></dd>
+<dd>The name and location of the file that contains warnings, status</dd>
+</dl>
+<p>messages, and error messages produced by the Traffic Server
+   processes.</p>
+<p>If no path is specified, then Traffic Server creates the file in
+   its logging directory.</p>
+<dl>
+<dt><em><code>proxy.config.snapshot_dir</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>snapshots</code></dd>
+<dd>The directory in which Traffic Server stores configuration</dd>
+</dl>
+<p>snapshots on the local system. Unless you specify an absolute path,
+   this directory is located in the Traffic Server <code>config</code>
+   directory.</p>
+<dl>
+<dt><em><code>proxy.config.accept_threads</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>0</code></dd>
+<dd>When enabled (<code>1</code>), runs a separate thread for accept processing.</dd>
+</dl>
+<p>If disabled (<code>0</code>), then only 1 thread can be created.</p>
+<dl>
+<dt><em><code>proxy.config.thread.default.stacksize</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>1096908</code></dd>
+<dd>The new default thread stack size, for all threads. The original</dd>
+</dl>
+<p>default is set at 1 MB.</p>
+<p><strong>Local Manager</strong></p>
+<dl>
+<dt><em><code>proxy.config.lm.sem_id</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>11452</code></dd>
+<dd>The semaphore ID for the local manager.</dd>
+<dt><em><code>proxy.local.cluster.type</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>3</code></dd>
+<dd>Sets the clustering mode:</dd>
+</dl>
+<p><code>1</code> = full-clustering mode
+   <code>2</code> = management-only mode
+   <code>3</code> = no clustering</p>
+<dl>
+<dt><em><code>proxy.config.cluster.rsport</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>8088</code></dd>
+<dd>The reliable service port. The reliable service port is used to</dd>
+</dl>
+<p>send configuration information between the nodes in a cluster. All
+   nodes in a cluster must use the same reliable service port.</p>
+<dl>
+<dt><em><code>proxy.config.admin.autoconf_port</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>8083</code></dd>
+<dd>The autoconfiguration port.</dd>
+<dt><em><code>proxy.config.admin.overseer_port</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>8082</code></dd>
+</dl>
+<p>The port used for retrieving and setting statistics and
+   configuration variables.</p>
+<dl>
+<dt><em><code>proxy.config.admin.number_config_bak</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>3</code></dd>
+<dd>The maximum number of copies of rolled configuration files to</dd>
+</dl>
+<p>keep.</p>
+<dl>
+<dt><em><code>proxy.config.admin.admin_password</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd>Specifies the encrypted administrator password that controls access</dd>
+</dl>
+<p>to Traffic Manager. The format can be recreated with:</p>
+<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
+2
+3
+4
+5</pre></div></td><td class="code"><div class="codehilite"><pre><span class="x">#!/usr/bin/php</span>
+<span class="cp">&lt;?php</span>
+    <span class="nv">$foo</span> <span class="o">=</span> <span class="nb">md5</span><span class="p">(</span><span class="s1">&#39;admin&#39;</span><span class="p">,</span><span class="k">true</span><span class="p">);</span>
+    <span class="k">echo</span> <span class="nb">strtoupper</span><span class="p">(</span><span class="nb">substr</span><span class="p">(</span><span class="nb">bin2hex</span><span class="p">(</span><span class="nv">$foo</span><span class="p">),</span><span class="mi">0</span><span class="p">,</span><span class="mi">23</span><span class="p">))</span> <span class="o">.</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">;</span>
+<span class="cp">?&gt;</span><span class="x"></span>
+</pre></div>
+</td></tr></table>
+
+<p>or</p>
+<div class="codehilite"><pre>
+</pre></div>
+
+
+<p>Note that the web interface is not being maintained.</p>
+<dl>
+<dt><em><code>proxy.config.admin.user_id</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>nobody</code></dd>
+<dd>Option used to specify who to run the <code>traffic_server</code>process as;</dd>
+</dl>
+<p>also used to specify ownership of config and log files.</p>
+<p>The nonprivileged user account designated to Traffic Server.</p>
+<p>As of version 2.1.1 if the user_id is prefixed with pound
+   character (#) the remaining of the string is considered to be
+   <a href="http://en.wikipedia.org/wiki/User_identifier">numeric user identifier</a>.
+   If the value is set to '#-1' Traffic Server will not change the
+   user during startup.</p>
+<p>Setting <code>user_id</code> to <code>root</code> or <code>#0</code> is now forbidden to increase
+   security. Trying to do so, will cause the <code>traffic_server</code> fatal
+   failure. However there are two ways to bypass that restriction:
+   Specify <code>-DBIG_SECURITY_HOLE</code> in <code>CXXFLAGS</code> during compilation
+   Set the <code>user_id=#-1</code> and start trafficserver as root.</p>
+<p><strong>Process Manager</strong></p>
+<dl>
+<dt><em><code>proxy.config.process_manager.mgmt_port</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>8084</code></dd>
+<dd>The port used for internal communication between the</dd>
+</dl>
+<p><code>traffic_manager</code> and <code>traffic_server</code> processes.</p>
+<p><strong>Alarm Configuration</strong></p>
+<dl>
+<dt><em><code>proxy.config.alarm.bin</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>example_alarm_bin.sh</code></dd>
+<dd>Name of the script file that can execute certain actions when an</dd>
+</dl>
+<p>alarm is signaled. The default file is a sample script named
+   <code>example_alarm_bin.sh</code> located in the <code>bin</code> directory. You must
+   edit the script to suit your needs.</p>
+<dl>
+<dt><em><code>proxy.config.alarm.abs_path</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>NULL</code></dd>
+<dd>The full path to the script file that sends email to alert someone</dd>
+</dl>
+<p>about Traffic Server problems.</p>
+<p><strong>Authentication Basic Realm</strong></p>
+<dl>
+<dt><em><code>proxy.config.proxy.authenticate.basic.realm</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>NULL</code></dd>
+<dd>The authentication realm name. If the default of <code>NULL</code> is</dd>
+</dl>
+<p>specified, then<code>traffic_edge</code> is used.</p>
+<p><strong>HTTP Engine</strong></p>
+<dl>
+<dt><em><code>proxy.config.http.server_port</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>8080</code></dd>
+<dd>The port that Traffic Server uses when acting as a web proxy server</dd>
+</dl>
+<p>for web traffic.</p>
+<dl>
+<dt><em><code>proxy.config.http.server_port_attr</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>X</code></dd>
+<dd>
+<p>The server port options. You can specify one of the following:</p>
+<p>C=SERVER_PORT_COMPRESSED
+X=SERVER_PORT_DEFAULT
+T=SERVER_PORT_BLIND_TUNNEL</p>
+</dd>
+<dt><em><code>proxy.config.http.server_other_ports</code></em></dt>
+<dd>
+<p><code>STRING</code></p>
+</dd>
+<dd>
+<p><code>NULL</code></p>
+</dd>
+<dd>
+<p>The ports other than the port specified by the variable</p>
+</dd>
+</dl>
+<p><em><code>proxy.config.http.server_port</code></em> to bind for incoming HTTP
+   requests. Example:</p>
+<div class="codehilite"><pre><span class="n">CONFIG</span> <span class="n">proxy</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">server_other_ports</span> <span class="n">STRING</span> <span class="mi">6060</span><span class="p">:</span><span class="n">X</span> <span class="mi">9090</span><span class="p">:</span><span class="n">X</span>
+</pre></div>
+
+
+<p>would listed to ports <code>6060</code>, <code>9090</code>, and the port specified by
+   <em><code>proxy.config.http.server_port</code></em>.</p>
+<dl>
+<dt><em><code>proxy.config.http.ssl_ports</code></em></dt>
+<dd><code>STRING</code></dd>
+<dd><code>443 563</code></dd>
+<dd>The range of ports used for tunneling. Traffic Server allows</dd>
+</dl>
+<p>tunnels only to the specified ports.</p>
+<p>For example: to retrieve an object using HTTPS via Traffic Server,
+   a tunnel must be established to an origin server via Traffic
+   Server.</p>
+<dl>
+<dt><em><code>proxy.config.http.insert_request_via_str</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>1</code></dd>
+<dd>You can specify one of the following:</dd>
+</dl>
+<p><code>0</code> = no extra information is added to the string.
+   <code>1</code> = all extra information is added.
+   <code>2</code> = some extra information is added.</p>
+<p>Note: the Via: header string interpretation is
+   <a href="trouble#interpret_via_header">documented here.</a></p>
+<dl>
+<dt><em><code>proxy.config.http.insert_response_via_str</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>1</code></dd>
+<dd>You can specify one of the following:</dd>
+</dl>
+<p><code>0</code> no extra information is added to the string. <br />
+<code>1</code> all extra information is added. <br />
+<code>2</code> some extra information is added. <br />
+</p>
+<dl>
+<dt><em><code>proxy.config.http.enable_url_expandomatic</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>1</code></dd>
+<dd>Enables (<code>1</code>) or disables (<code>0</code>) <code>.com</code> domain expansion. This</dd>
+</dl>
+<p>configures the Traffic Server to resolve unqualified hostnames by
+   prepending with <code>www.</code> and appending with <code>.com</code> before redirecting
+   to the expanded address.</p>
+<p>For example: if a client makes a request to <code>host</code>, then Traffic
+   Server redirects the request to <code>www.host.com</code>.</p>
+<dl>
+<dt><em><code>proxy.config.http.chunking_enabled</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>1</code></dd>
+<dd>Specifies whether Traffic Sever can generate a chunked response:</dd>
+</dl>
+<p><code>0</code> Never<br />
+<code>1</code> Always<br />
+<code>2</code> Generate a chunked response if the server has returned HTTP/1.1 before <br />
+<code>3</code> = Generate a chunked response if the client request is HTTP/1.1 and
+   the origin server has returned HTTP/1.1 before</p>
+<p><strong>Note:</strong> If HTTP/1.1 is used, then Traffic Server can use
+   keep-alive connections with pipelining to origin servers. If HTTP/0.9
+   is used, then Traffic Server does not use <code>keep-alive</code>
+   connections to origin servers. If HTTP/1.0 is used, then Traffic
+   Server can use <code>keep-alive</code> connections without pipelining to origin
+   servers.</p>
+<dl>
+<dt><em><code>proxy.config.http.share_server_sessions</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>1</code></dd>
+<dd>Enables (<code>1</code>) or disables (<code>0</code>) the reuse of server sessions.</dd>
+<dt><em><code>proxy.config.http.record_heartbeat</code></em></dt>
+<dd><code>INT</code></dd>
+<dd><code>0</code></dd>

[... 1950 lines stripped ...]