http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol-website/blob/5e5852e7/docs/latest/admin/traffic_stats.html
----------------------------------------------------------------------
diff --git a/docs/latest/admin/traffic_stats.html 
b/docs/latest/admin/traffic_stats.html
new file mode 100644
index 0000000..5d0c665
--- /dev/null
+++ b/docs/latest/admin/traffic_stats.html
@@ -0,0 +1,490 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Traffic Stats Administration &mdash; Traffic Control 1.8.1 
documentation </title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+    <link rel="stylesheet" href="../_static/theme_overrides.css" 
type="text/css" />
+  
+
+  
+        <link rel="index" title="Index"
+              href="../genindex.html"/>
+        <link rel="search" title="Search" href="../search.html"/>
+    <link rel="top" title="Traffic Control 1.8.1 documentation" 
href="../index.html"/>
+        <link rel="up" title="Administrator’s Guide" href="index.html"/>
+        <link rel="next" title="Traffic Server Administration" 
href="traffic_server.html"/>
+        <link rel="prev" title="Traffic Router Administration" 
href="traffic_router.html"/> 
+
+  
+  <script src="_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-nav-search">
+        
+
+        
+          <a href="/" class="icon icon-home"> Traffic Control
+        
+
+        
+          
+          <img src="../_static/tc_logo.png" class="logo" />
+        
+        </a>
+
+        
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" 
method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+        
+      </div>
+
+      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" 
aria-label="main navigation">
+        
+          
+          
+              <ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../basics/index.html">CDN Basics</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/content_delivery_networks.html">Content Delivery 
Networks</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/http_11.html">HTTP 1.1</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/caching_proxies.html">Caching Proxies</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/cache_revalidation.html">Cache Control Headers and 
Revalidation</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../overview/index.html">Traffic Control Overview</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/introduction.html">Introduction</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_ops.html">Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_portal.html">Traffic Portal</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_router.html">Traffic Router</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_monitor.html">Traffic Monitor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_stats.html">Traffic Stats</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_server.html">Traffic Server</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_vault.html">Traffic Vault</a></li>
+</ul>
+</li>
+</ul>
+<ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" 
href="index.html">Administrator’s Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_ops_install.html">Installing Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_ops_config.html">Configuring Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_ops_using.html">Using Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_ops_extensions.html">Managing Traffic Ops Extensions</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_portal.html">Traffic Portal Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_monitor.html">Traffic Monitor Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_router.html">Traffic Router Administration</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" 
href="#">Traffic Stats Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_server.html">Traffic Server Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_vault.html">Traffic Vault Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="quick_howto/index.html">Quick How To Guides</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../development/index.html">Developer’s Guide</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_ops.html">Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_portal.html">Traffic Portal</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_router.html">Traffic Router</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_monitor.html">Traffic Monitor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_stats.html">Traffic Stats</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_server.html">Traffic Server</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../faq/index.html">FAQ</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/general.html">General</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/development.html">Development</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/administration.html">Running a Traffic Control CDN</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../glossary.html">Glossary</a></li>
+</ul>
+
+          
+        
+      </div>
+      &nbsp;
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">Traffic Control</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Traffic Control 1.8.1</a> &raquo;</li>
+      
+          <li><a href="index.html">Administrator’s Guide</a> &raquo;</li>
+      
+    <li>Traffic Stats Administration</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          <a href="../_sources/admin/traffic_stats.rst.txt" rel="nofollow"> 
View page source</a>
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+                 
+                 <div class="rst-footer-buttons" role="navigation" 
aria-label="footer navigation">
+                 
+                         <a href="traffic_server.html" class="btn btn-neutral 
float-right" title="Traffic Server Administration">Next <span class="fa 
fa-arrow-circle-right"></span></a>
+                 
+                 
+                         <a href="traffic_router.html" class="btn btn-neutral" 
title="Traffic Router Administration"><span class="fa 
fa-arrow-circle-left"></span> Previous</a>
+                 
+                 </div>
+                 
+          <div role="main" class="document">
+            
+  <div class="section" id="traffic-stats-administration">
+<h1>Traffic Stats Administration<a class="headerlink" 
href="#traffic-stats-administration" title="Permalink to this 
headline">¶</a></h1>
+<p>Traffic Stats consists of three seperate components:  Traffic Stats, 
InfluxDB, and Grafana.  See below for information on installing and configuring 
each component as well as configuring the integration between the three and 
Traffic Ops.</p>
+<div class="section" id="installation">
+<h2>Installation<a class="headerlink" href="#installation" title="Permalink to 
this headline">¶</a></h2>
+<p><strong>Installing Traffic Stats:</strong></p>
+<blockquote>
+<div><ul class="simple">
+<li>Download the Traffic Stats RPM from the traffic control <a 
class="reference external" 
href="https://trafficcontrol.apache.org/downloads/index.html";>downloads</a> 
page.</li>
+<li>Copy the Traffic Stats RPM to your server</li>
+<li>sudo rpm -ivh &lt;traffic_stats rpm&gt;</li>
+</ul>
+</div></blockquote>
+<p><strong>Installing InfluxDB:</strong></p>
+<blockquote>
+<div><p><strong>As of Traffic Stats 1.8.0, InfluxDb 1.0.0 or higher is 
required.  For InfluxDb versions less than 1.0.0 use Traffic Stats 
1.7.x</strong></p>
+<p>In order to store traffic stats data you will need to install <a 
class="reference external" 
href="https://docs.influxdata.com/influxdb/latest/introduction/installation/";>InfluxDB</a>.
  While not required, it is recommended to use some sort of high availability 
option like <a class="reference external" 
href="https://portal.influxdata.com/";>Influx enterprise</a>, <a 
class="reference external" 
href="https://github.com/influxdata/influxdb-relay";>Influxdb Relay</a>, or 
another <a class="reference external" 
href="https://www.influxdata.com/high-availability/";>high availability 
option</a>.</p>
+</div></blockquote>
+<p><strong>Installing Grafana:</strong></p>
+<blockquote>
+<div>Grafana is used to display Traffic Stats/InfluxDB data in Traffic Ops.  
Grafana is typically run on the same server as Traffic Stats but this is not a 
requirement.  Grafana can be installed on any server that can access InfluxDB 
and can be accessed by Traffic Ops.  Documentation on installing Grafana can be 
found on the <a class="reference external" 
href="http://docs.grafana.org/installation/";>Grafana 
website</a>.</div></blockquote>
+</div>
+<div class="section" id="configuration">
+<h2>Configuration<a class="headerlink" href="#configuration" title="Permalink 
to this headline">¶</a></h2>
+<p><strong>Configuring Traffic Stats:</strong></p>
+<blockquote>
+<div><p>Traffic Stats’ configuration file can be found in 
/opt/traffic_stats/conf/traffic_stats.cfg.
+The following values need to be configured:</p>
+<blockquote>
+<div><ul class="simple">
+<li><em>toUser:</em> The user used to connect to Traffic Ops</li>
+<li><em>toPasswd:</em>  The password to use when connecting to Traffic Ops</li>
+<li><em>toUrl:</em>  The URL of the Traffic Ops server used by Traffic 
Stats</li>
+<li><em>influxUser:</em>  The user to use when connecting to InfluxDB (if 
configured on InfluxDB, else leave default)</li>
+<li><em>influxPassword:</em>  That password to use when connecting to InfluxDB 
(if configured, else leave blank)</li>
+<li><em>pollingInterval:</em>  The interval at which Traffic Monitor is polled 
and stats are stored in InfluxDB</li>
+<li><em>statusToMon:</em>  The status of Traffic Monitor to poll (poll ONLINE 
or OFFLINE traffic monitors)</li>
+<li><em>seelogConfig:</em>  The absolute path of the seelong config file</li>
+<li><em>dailySummaryPollingInterval:</em> The interval, in seconds, at which 
Traffic Stats checks to see if daily stats need to be computed and stored.</li>
+<li><em>cacheRetentionPolicy:</em> The default retention policy for cache 
stats</li>
+<li><em>dsRetentionPolicy:</em> The default retention policy for 
deliveryservice stats</li>
+<li><em>dailySummaryRetentionPolicy:</em> The retention policy to be used for 
the daily stats</li>
+<li><em>influxUrls:</em> An array of influxdb hosts for Traffic Stats to write 
stats to.</li>
+</ul>
+</div></blockquote>
+</div></blockquote>
+<p><strong>Configuring InfluxDB:</strong></p>
+<blockquote>
+<div><p>As mentioned above, it is recommended that InfluxDb be running in some 
sort of high availability configuration.  There are several ways to achieve 
high availabilty so it is best to consult the high availability options on the 
<a class="reference external" 
href="https://www.influxdata.com/high-availability/";>InfuxDB website</a>.</p>
+<p>Once InfluxDB is installed and configured, databases and retention policies 
need to be created.  Traffic Stats writes to three different databases: 
cache_stats, deliveryservice_stats, and daily_stats.  More information about 
the databases and what data is stored in each can be found on the <a 
class="reference external" href="../overview/traffic_stats.html">overview</a> 
page.</p>
+<p>To easily create databases, retention policies, and continuous queries, run 
create_ts_databases from the /opt/traffic_stats/influxdb_tools directory on 
your Traffic Stats server.  See the <a class="reference external" 
href="traffic_stats.html#influxdb-tools">InfluxDb Tools</a> section below for 
more information.</p>
+</div></blockquote>
+<p><strong>Configuring Grafana:</strong></p>
+<blockquote>
+<div><blockquote>
+<div><p>In Traffic Ops the Health -&gt; Graph View tab can be configured to 
display grafana graphs using influxDb data.  In order for this to work 
correctly, you will need two things 1) a parameter added to traffic ops with 
the graph URL (more information below) and 2) the graphs created in grafana.  
See below for how to create some simple graphs in grafana.  These instructions 
assume that InfluxDB has been configured and that data has been written to it.  
If this is not true, you will not see any graphs.</p>
+<ul>
+<li><p class="first">Login to grafana as an admin user <a class="reference 
external" 
href="http://grafana_url:3000/login";>http://grafana_url:3000/login</a></p>
+</li>
+<li><p class="first">Choose Data Sources and then Add New</p>
+</li>
+<li><p class="first">Enter the necessary information to configure your data 
source</p>
+</li>
+<li><p class="first">Click on the ‘Home’ dropdown at the top of the screen 
and choose New at the bottom</p>
+</li>
+<li><p class="first">Click on the green menu bar (with 3 lines) at the top and 
choose Add Panel -&gt; Graph</p>
+</li>
+<li><p class="first">Where it says ‘No Title (click here)’ click and 
choose edit</p>
+</li>
+<li><p class="first">Choose your data source at the bottom</p>
+</li>
+<li><p class="first">You can have grafana help you create a query, or you can 
create your own.  Here is a sample query:</p>
+<blockquote>
+<div><p><code class="docutils literal"><span class="pre">SELECT</span> <span 
class="pre">sum(value)*1000</span> <span class="pre">FROM</span> <span 
class="pre">&quot;monthly&quot;.&quot;bandwidth.cdn.1min&quot;</span> <span 
class="pre">WHERE</span> <span class="pre">$timeFilter</span> <span 
class="pre">GROUP</span> <span class="pre">BY</span> <span 
class="pre">time(60s),</span> <span class="pre">cdn</span></code></p>
+</div></blockquote>
+</li>
+<li><p class="first">Once you have the graph the way you want it, click the 
‘Save Dashboard’ button at the top</p>
+</li>
+<li><p class="first">You should now have a new saved graph</p>
+</li>
+</ul>
+</div></blockquote>
+<p>In order for Traffic Ops users to see Grafana graphs, Grafana will need to 
allow anonymous access.  Information on how to configure anonymous access can 
be found on the configuration page of the <a class="reference external" 
href="http://docs.grafana.org/installation/configuration/#authanonymous";>Grafana
 Website</a>.</p>
+<p>Traffic Ops uses custom dashboards to display information about individual 
delivery services or cache groups.  In order for the custom graphs to display 
correctly, the <a class="reference external" 
href="https://github.com/apache/incubator-trafficcontrol/blob/master/traffic_stats/grafana/";>traffic_ops_*.js</a>
 files need to be in the <code class="docutils literal"><span 
class="pre">/usr/share/grafana/public/dashboards/</span></code> directory on 
the grafana server.  If your Grafana server is the same as your Traffic Stats 
server the RPM install process will take care of putting the files in place.  
If your grafana server is different from your Traffic Stats server, you will 
need to manually copy the files to the correct directory.</p>
+<p>More information on custom scripted graphs can be found in the <a 
class="reference external" 
href="http://docs.grafana.org/reference/scripting/";>scripted dashboards</a> 
section of the Grafana documentation.</p>
+</div></blockquote>
+<p><strong>Configuring Traffic Ops for Traffic Stats:</strong></p>
+<blockquote>
+<div><ul class="simple">
+<li>The influxDb servers need to be added to Traffic Ops with profile = 
InfluxDB.  Make sure to use port 8086 in the configuration.</li>
+<li>The traffic stats server should be added to Traffic Ops with profile = 
Traffic Stats.</li>
+<li>Parameters for which stats will be collected are added with the release, 
but any changes can be made via parameters that are assigned to the Traffic 
Stats profile.</li>
+</ul>
+</div></blockquote>
+<p><strong>Configuring Traffic Ops to use Grafana Dashboards</strong></p>
+<blockquote>
+<div><p>To configure Traffic Ops to use Grafana Dashboards, you need to enter 
the following parameters and assign them to the GLOBAL profile.  This assumes 
you followed the above instructions to install and configure InfluxDB and 
Grafana.  You will need to place ‘cdn-stats’,’deliveryservice-stats’, 
and ‘daily-summary’ with the name of your dashboards.</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="22%" />
+<col width="78%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">parameter name</th>
+<th class="head">parameter value</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>all_graph_url</td>
+<td><a class="reference external" 
href="https:/">https:/</a>/&lt;grafana_url&gt;/dashboard/db/deliveryservice-stats</td>
+</tr>
+<tr class="row-odd"><td>cachegroup_graph_url</td>
+<td><a class="reference external" 
href="https:/">https:/</a>/&lt;grafanaHost&gt;/dashboard/script/traffic_ops_cachegroup.js?which=</td>
+</tr>
+<tr class="row-even"><td>deliveryservice_graph_url</td>
+<td><a class="reference external" 
href="https:/">https:/</a>/&lt;grafanaHost&gt;/dashboard/script/traffic_ops_devliveryservice.js?which=</td>
+</tr>
+<tr class="row-odd"><td>server_graph_url</td>
+<td><a class="reference external" 
href="https:/">https:/</a>/&lt;grafanaHost&gt;/dashboard/script/traffic_ops_server.js?which=</td>
+</tr>
+<tr class="row-even"><td>visual_status_panel_1</td>
+<td><a class="reference external" 
href="https:/">https:/</a>/&lt;grafanaHost&gt;/dashboard-solo/db/cdn-stats?panelId=2&amp;fullscreen&amp;from=now-24h&amp;to=now-60s</td>
+</tr>
+<tr class="row-odd"><td>visual_status_panel_2</td>
+<td><a class="reference external" 
href="https:/">https:/</a>/&lt;grafanaHost&gt;/dashboard-solo/db/cdn-stats?panelId=1&amp;fullscreen&amp;from=now-24h&amp;to=now-60s</td>
+</tr>
+<tr class="row-even"><td>daily_bw_url</td>
+<td><a class="reference external" 
href="https:/">https:/</a>/&lt;grafanaHost&gt;/dashboard-solo/db/daily-summary?panelId=1&amp;fullscreen&amp;from=now-3y&amp;to=now</td>
+</tr>
+<tr class="row-odd"><td>daily_served_url</td>
+<td><a class="reference external" 
href="https:/">https:/</a>/&lt;grafanaHost&gt;/dashboard-solo/db/daily-summary?panelId=2&amp;fullscreen&amp;from=now-3y&amp;to=now</td>
+</tr>
+</tbody>
+</table>
+</div></blockquote>
+</div>
+<div class="section" id="id2">
+<h2>InfluxDb Tools<a class="headerlink" href="#id2" title="Permalink to this 
headline">¶</a></h2>
+<p>Under the Traffic Stats source directory there is a directory called 
influxdb_tools.  These tools are meant to be used as one-off scripts to help a 
user quickly get new databases and continuous queries setup in influxdb.
+They are specific for traffic stats and are not meant to be generic to 
influxdb.  Below is an brief description of each script along with how to use 
it.</p>
+<dl class="docutils">
+<dt><strong>create_ts_databases</strong></dt>
+<dd><p class="first">This script creates all <a class="reference external" 
href="https://docs.influxdata.com/influxdb/latest/concepts/key_concepts/#database";>databases</a>,
 <a class="reference external" 
href="https://docs.influxdata.com/influxdb/latest/concepts/key_concepts/#retention-policy";>retention
 policies</a>, and <a class="reference external" 
href="https://docs.influxdata.com/influxdb/v0.11/query_language/continuous_queries/";>continuous
 queries</a> required by traffic stats.</p>
+<p><strong>How to use create_ts_databases:</strong></p>
+<p>Pre-Requisites:</p>
+<blockquote>
+<div><ol class="arabic simple">
+<li>Go 1.4 or later</li>
+<li>configured $GOPATH (e.g. export GOPATH=~/go)</li>
+</ol>
+</div></blockquote>
+<p>Using create_ts_databases.go</p>
+<blockquote class="last">
+<div><ol class="arabic simple">
+<li>go get github.com/influxdata/influxdb</li>
+<li>go build create_ts_databases.go</li>
+<li><dl class="first docutils">
+<dt>Run it:</dt>
+<dd><ul class="first last">
+<li>./create_ts_databases -help</li>
+<li><dl class="first docutils">
+<dt>optional flags:</dt>
+<dd><ul class="first last">
+<li>influxUrl -  The influxdb url and port</li>
+<li>replication -  The number of nodes in the cluster</li>
+<li>user - The user to use</li>
+<li>password - The password to use</li>
+</ul>
+</dd>
+</dl>
+</li>
+<li>example: ./create_ts_databases -influxUrl=localhost:8086 -replication=3 
-user=joe -password=mysecret</li>
+</ul>
+</dd>
+</dl>
+</li>
+</ol>
+</div></blockquote>
+</dd>
+<dt><strong>sync_ts_databases</strong></dt>
+<dd><p class="first">This script is used to sync one influxdb environment to 
another.  Only data from continuous queries is synced as it is downsampled data 
and much smaller in size than syncing raw data.  Possible use cases are syncing 
from Production to Development or Syncing a new cluster once brought online.</p>
+<p><strong>How to use sync_ts_databases:</strong></p>
+<p>Pre-Requisites:</p>
+<blockquote>
+<div><ol class="arabic simple">
+<li>Go 1.4 or later</li>
+<li>configured $GOPATH (e.g. export GOPATH=~/go)</li>
+</ol>
+</div></blockquote>
+<p>Using sync_ts_databases.go:</p>
+<blockquote class="last">
+<div><ol class="arabic">
+<li><p class="first">go get github.com/influxdata/influxdb</p>
+</li>
+<li><p class="first">go build sync_ts_databases.go</p>
+</li>
+<li><dl class="first docutils">
+<dt>Run it</dt>
+<dd><ul class="first simple">
+<li>./sync_ts_databases -help</li>
+<li><dl class="first docutils">
+<dt>required flags:</dt>
+<dd><ul class="first last">
+<li>sourceUrl - The URL of the source database</li>
+<li>targetUrl - The URL of the target database</li>
+</ul>
+</dd>
+</dl>
+</li>
+</ul>
+<dl class="docutils">
+<dt>-optional flags:</dt>
+<dd><ul class="first last simple">
+<li>database - The database to sync (default = sync all databases)</li>
+<li>days - Days in the past to sync (default = sync all data)</li>
+<li>sourceUser - The user of the source database</li>
+<li>sourcePass - The password for the source database</li>
+<li>targetUser - The user of the target database</li>
+<li>targetPass - The password for the target database</li>
+</ul>
+</dd>
+</dl>
+<ul class="last simple">
+<li>example: ./sync_ts_databases 
-sourceUrl=http://influxdb-production-01.kabletown.net:8086 
-targetUrl=http://influxdb-dev-01.kabletown.net:8086 -database=cache_stats 
-days=7 -sourceUser=joe sourcePass=mysecret</li>
+</ul>
+</dd>
+</dl>
+</li>
+</ol>
+</div></blockquote>
+</dd>
+</dl>
+</div>
+</div>
+
+
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer 
navigation">
+      
+        <a href="traffic_server.html" class="btn btn-neutral float-right" 
title="Traffic Server Administration">Next <span class="fa 
fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="traffic_router.html" class="btn btn-neutral" title="Traffic 
Router Administration"><span class="fa fa-arrow-circle-left"></span> 
Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/";>Sphinx</a> using a <a 
href="https://github.com/snide/sphinx_rtd_theme";>theme</a> provided by <a 
href="https://readthedocs.org";>Read the Docs</a>.
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.8.1',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol-website/blob/5e5852e7/docs/latest/admin/traffic_vault.html
----------------------------------------------------------------------
diff --git a/docs/latest/admin/traffic_vault.html 
b/docs/latest/admin/traffic_vault.html
new file mode 100644
index 0000000..7fd0662
--- /dev/null
+++ b/docs/latest/admin/traffic_vault.html
@@ -0,0 +1,511 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Traffic Vault Administration &mdash; Traffic Control 1.8.1 
documentation </title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+    <link rel="stylesheet" href="../_static/theme_overrides.css" 
type="text/css" />
+  
+
+  
+        <link rel="index" title="Index"
+              href="../genindex.html"/>
+        <link rel="search" title="Search" href="../search.html"/>
+    <link rel="top" title="Traffic Control 1.8.1 documentation" 
href="../index.html"/>
+        <link rel="up" title="Administrator’s Guide" href="index.html"/>
+        <link rel="next" title="Quick How To Guides" 
href="quick_howto/index.html"/>
+        <link rel="prev" title="Traffic Server Administration" 
href="traffic_server.html"/> 
+
+  
+  <script src="_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-nav-search">
+        
+
+        
+          <a href="/" class="icon icon-home"> Traffic Control
+        
+
+        
+          
+          <img src="../_static/tc_logo.png" class="logo" />
+        
+        </a>
+
+        
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" 
method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+        
+      </div>
+
+      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" 
aria-label="main navigation">
+        
+          
+          
+              <ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../basics/index.html">CDN Basics</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/content_delivery_networks.html">Content Delivery 
Networks</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/http_11.html">HTTP 1.1</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/caching_proxies.html">Caching Proxies</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../basics/cache_revalidation.html">Cache Control Headers and 
Revalidation</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../overview/index.html">Traffic Control Overview</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/introduction.html">Introduction</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_ops.html">Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_portal.html">Traffic Portal</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_router.html">Traffic Router</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_monitor.html">Traffic Monitor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_stats.html">Traffic Stats</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_server.html">Traffic Server</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_vault.html">Traffic Vault</a></li>
+</ul>
+</li>
+</ul>
+<ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" 
href="index.html">Administrator’s Guide</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_ops_install.html">Installing Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_ops_config.html">Configuring Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_ops_using.html">Using Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_ops_extensions.html">Managing Traffic Ops Extensions</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_portal.html">Traffic Portal Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_monitor.html">Traffic Monitor Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_router.html">Traffic Router Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_stats.html">Traffic Stats Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="traffic_server.html">Traffic Server Administration</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" 
href="#">Traffic Vault Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="quick_howto/index.html">Quick How To Guides</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../development/index.html">Developer’s Guide</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_ops.html">Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_portal.html">Traffic Portal</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_router.html">Traffic Router</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_monitor.html">Traffic Monitor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_stats.html">Traffic Stats</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_server.html">Traffic Server</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../faq/index.html">FAQ</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/general.html">General</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/development.html">Development</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/administration.html">Running a Traffic Control CDN</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../glossary.html">Glossary</a></li>
+</ul>
+
+          
+        
+      </div>
+      &nbsp;
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">Traffic Control</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Traffic Control 1.8.1</a> &raquo;</li>
+      
+          <li><a href="index.html">Administrator’s Guide</a> &raquo;</li>
+      
+    <li>Traffic Vault Administration</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          <a href="../_sources/admin/traffic_vault.rst.txt" rel="nofollow"> 
View page source</a>
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+                 
+                 <div class="rst-footer-buttons" role="navigation" 
aria-label="footer navigation">
+                 
+                         <a href="quick_howto/index.html" class="btn 
btn-neutral float-right" title="Quick How To Guides">Next <span class="fa 
fa-arrow-circle-right"></span></a>
+                 
+                 
+                         <a href="traffic_server.html" class="btn btn-neutral" 
title="Traffic Server Administration"><span class="fa 
fa-arrow-circle-left"></span> Previous</a>
+                 
+                 </div>
+                 
+          <div role="main" class="document">
+            
+  <div class="section" id="traffic-vault-administration">
+<h1>Traffic Vault Administration<a class="headerlink" 
href="#traffic-vault-administration" title="Permalink to this 
headline">¶</a></h1>
+<div class="section" id="installing-traffic-vault">
+<h2>Installing Traffic Vault<a class="headerlink" 
href="#installing-traffic-vault" title="Permalink to this headline">¶</a></h2>
+<p>In order to successfully store private keys you will need to install Riak.
+The latest version of Riak can be downloaded on the Riak <a class="reference 
external" href="http://docs.basho.com/riak/latest/downloads/";>website</a>.
+The installation instructions for Riak can be found <a class="reference 
external" 
href="http://docs.basho.com/riak/latest/ops/building/installing/";>here</a>.</p>
+<p>Production is currently running version 2.0.5 of Riak, but the latest 
version should suffice.</p>
+</div>
+<div class="section" id="configuring-traffic-vault">
+<h2>Configuring Traffic Vault<a class="headerlink" 
href="#configuring-traffic-vault" title="Permalink to this headline">¶</a></h2>
+<p>The following steps were taken to configure Riak in our environments.</p>
+<div class="section" id="riak-configuration-file-configuration">
+<h3>Riak configuration file configuration<a class="headerlink" 
href="#riak-configuration-file-configuration" title="Permalink to this 
headline">¶</a></h3>
+<p>The following steps need to be performed on each Riak server in the 
cluster:</p>
+<ul class="simple">
+<li>Log into riak server as root</li>
+<li>cd to /etc/riak/</li>
+<li><dl class="first docutils">
+<dt>Update the following in riak.conf to reflect your IP:</dt>
+<dd><ul class="first last">
+<li>nodename = <a class="reference external" 
href="mailto:riak&#37;&#52;&#48;a-host&#46;sys&#46;kabletown&#46;net";>riak<span>&#64;</span>a-host<span>&#46;</span>sys<span>&#46;</span>kabletown<span>&#46;</span>net</a></li>
+<li>listener.http.internal = a-host.sys.kabletown.net:8098 (can be 80 - This 
endpoint will not work with sec enabled)</li>
+<li>listener.protobuf.internal = a-host.sys.kabletown.net:8087 (can be 
different port if you want)</li>
+<li>listener.https.internal = a-host.sys.kabletown.net:8088 (can be 443)</li>
+</ul>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>Updated the following conf file to point to your cert files</dt>
+<dd><ul class="first last">
+<li>ssl.certfile = /etc/riak/certs/server.crt</li>
+<li>ssl.keyfile = /etc/riak/certs/server.key</li>
+<li>ssl.cacertfile = /etc/pki/tls/certs/ca-bundle.crt</li>
+</ul>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>Add a line at the bottom of the config for tlsv1</dt>
+<dd><ul class="first last">
+<li>tls_protocols.tlsv1 = on</li>
+</ul>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>Once the config file has been updated restart riak</dt>
+<dd><ul class="first last">
+<li><code class="docutils literal"><span class="pre">/etc/init.d/riak</span> 
<span class="pre">restart</span></code></li>
+</ul>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>Validate server is running by going to the following URL:</dt>
+<dd><ul class="first last">
+<li><a class="reference external" 
href="https:/">https:/</a>/&lt;serverHostname&gt;:8088/ping</li>
+</ul>
+</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="section" id="riak-admin-configuration">
+<h3>Riak-admin configuration<a class="headerlink" 
href="#riak-admin-configuration" title="Permalink to this headline">¶</a></h3>
+<p>Riak-admin is a command line utility that needs to be run as root on a 
server in the riak cluster.</p>
+<dl class="docutils">
+<dt>Assumptions:</dt>
+<dd><ul class="first last simple">
+<li>Riak 2.0.2 or greater is installed</li>
+<li>SSL Certificates have been generated (signed or self-signed)</li>
+<li>Root access to riak servers</li>
+</ul>
+</dd>
+<dt>Add admin user and riakuser to riak</dt>
+<dd><ul class="first last simple">
+<li>Admin user will be a super user</li>
+<li>Riakuser will be the application user</li>
+</ul>
+</dd>
+</dl>
+<p>Login to one of the riak servers in the cluster as root (any will do)</p>
+<blockquote>
+<div><ol class="arabic">
+<li><p class="first">Enable security</p>
+<blockquote>
+<div><p><code class="docutils literal"><span class="pre">riak-admin</span> 
<span class="pre">security</span> <span class="pre">enable</span></code></p>
+</div></blockquote>
+</li>
+<li><p class="first">Add groups</p>
+<blockquote>
+<div><p><code class="docutils literal"><span class="pre">riak-admin</span> 
<span class="pre">security</span> <span class="pre">add-group</span> <span 
class="pre">admins</span></code></p>
+<p><code class="docutils literal"><span class="pre">riak-admin</span> <span 
class="pre">security</span> <span class="pre">add-group</span> <span 
class="pre">keysusers</span></code></p>
+</div></blockquote>
+</li>
+<li><p class="first">Add users</p>
+</li>
+</ol>
+<blockquote>
+<div><div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">username and password should be stored in 
/opt/traffic_ops/app/conf/&lt;environment&gt;/riak.conf</p>
+</div>
+<blockquote>
+<div><p><code class="docutils literal"><span class="pre">riak-admin</span> 
<span class="pre">security</span> <span class="pre">add-user</span> <span 
class="pre">admin</span> <span 
class="pre">password=&lt;AdminPassword&gt;</span> <span 
class="pre">groups=admins</span></code></p>
+<p><code class="docutils literal"><span class="pre">riak-admin</span> <span 
class="pre">security</span> <span class="pre">add-user</span> <span 
class="pre">riakuser</span> <span 
class="pre">password=&lt;RiakUserPassword&gt;</span> <span 
class="pre">groups=keysusers</span></code></p>
+</div></blockquote>
+</div></blockquote>
+<ol class="arabic" start="4">
+<li><p class="first">Grant access for admin and riakuser</p>
+<blockquote>
+<div><p><code class="docutils literal"><span class="pre">riak-admin</span> 
<span class="pre">security</span> <span class="pre">add-source</span> <span 
class="pre">riakuser</span> <span class="pre">0.0.0.0/0</span> <span 
class="pre">password</span></code></p>
+<p><code class="docutils literal"><span class="pre">riak-admin</span> <span 
class="pre">security</span> <span class="pre">add-source</span> <span 
class="pre">admin</span> <span class="pre">0.0.0.0/0</span> <span 
class="pre">password</span></code></p>
+</div></blockquote>
+</li>
+<li><p class="first">Grant privs to admins for everything</p>
+<blockquote>
+<div><p><code class="docutils literal"><span class="pre">riak-admin</span> 
<span class="pre">security</span> <span class="pre">grant</span> <span 
class="pre">riak_kv.list_buckets,riak_kv.list_keys,riak_kv.get,riak_kv.put,riak_kv.delete</span>
 <span class="pre">on</span> <span class="pre">any</span> <span 
class="pre">to</span> <span class="pre">admins</span></code></p>
+</div></blockquote>
+</li>
+<li><p class="first">Grant privs to keysuser for ssl, dnssec, and url_sig_keys 
buckets only</p>
+<blockquote>
+<div><p><code class="docutils literal"><span class="pre">riak-admin</span> 
<span class="pre">security</span> <span class="pre">grant</span> <span 
class="pre">riak_kv.get,riak_kv.put,riak_kv.delete</span> <span 
class="pre">on</span> <span class="pre">default</span> <span 
class="pre">ssl</span> <span class="pre">to</span> <span 
class="pre">keysusers</span></code></p>
+<p><code class="docutils literal"><span class="pre">riak-admin</span> <span 
class="pre">security</span> <span class="pre">grant</span> <span 
class="pre">riak_kv.get,riak_kv.put,riak_kv.delete</span> <span 
class="pre">on</span> <span class="pre">default</span> <span 
class="pre">dnssec</span> <span class="pre">to</span> <span 
class="pre">keysusers</span></code></p>
+<p><code class="docutils literal"><span class="pre">riak-admin</span> <span 
class="pre">security</span> <span class="pre">grant</span> <span 
class="pre">riak_kv.get,riak_kv.put,riak_kv.delete</span> <span 
class="pre">on</span> <span class="pre">default</span> <span 
class="pre">url_sig_keys</span> <span class="pre">to</span> <span 
class="pre">keysusers</span></code></p>
+</div></blockquote>
+</li>
+</ol>
+</div></blockquote>
+<div class="admonition seealso">
+<p class="first admonition-title">See also</p>
+<p class="last">For more information on security in Riak, see the <a 
class="reference external" 
href="http://docs.basho.com/riak/2.0.4/ops/advanced/security/";>Riak Security 
documentation</a>.</p>
+</div>
+<div class="admonition seealso">
+<p class="first admonition-title">See also</p>
+<p class="last">For more information on authentication and authorization in 
Riak, see the <a class="reference external" 
href="http://docs.basho.com/riak/2.0.4/ops/running/authz/";>Riak Authentication 
and Authorization documentation</a>.</p>
+</div>
+</div>
+<div class="section" id="traffic-ops-configuration">
+<h3>Traffic Ops Configuration<a class="headerlink" 
href="#traffic-ops-configuration" title="Permalink to this headline">¶</a></h3>
+<p>There are a couple configurations that are necessary in Traffic Ops.</p>
+<ol class="arabic">
+<li><dl class="first docutils">
+<dt>Database Updates</dt>
+<dd><ul class="first simple">
+<li>A new profile for Riak needs to be added to the profile table</li>
+<li>A new type of Riak needs to be added to the type table</li>
+<li>The servers in the Riak cluster need to be added to the server table</li>
+</ul>
+<blockquote class="last">
+<div><div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">profile and type data should be pre-loaded by seeds sql 
script.</p>
+</div>
+</div></blockquote>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>Configuration updates</dt>
+<dd><ul class="first last simple">
+<li>/opt/traffic_ops/app/conf/&lt;environment&gt;/riak.conf needs to be 
updated to reflect the correct username and password for accessing riak.</li>
+</ul>
+</dd>
+</dl>
+</li>
+</ol>
+</div>
+</div>
+<div class="section" id="configuring-riak-search">
+<h2>Configuring Riak Search<a class="headerlink" 
href="#configuring-riak-search" title="Permalink to this headline">¶</a></h2>
+<p>In order to more effectively support retrieval of SSL certificates by 
Traffic Router and Traffic Ops ORT, Traffic Vault uses <a class="reference 
external" 
href="http://docs.basho.com/riak/kv/latest/using/reference/search/";>Riak 
search</a>.  Riak Search uses <a class="reference external" 
href="http://lucene.apache.org/solr";>Apache Solr</a> for indexing and searching 
of records.  The following explains how to enable, configure, and validate Riak 
Search.</p>
+<div class="section" id="riak-configuration">
+<h3>Riak Configuration<a class="headerlink" href="#riak-configuration" 
title="Permalink to this headline">¶</a></h3>
+<p>On Each Riak Server:</p>
+<ol class="arabic simple">
+<li><dl class="first docutils">
+<dt>If java is not already installed on your Riak server, install Java</dt>
+<dd><ul class="first last">
+<li>To see if Java is already installed: <code class="docutils literal"><span 
class="pre">java</span> <span class="pre">-version</span></code></li>
+<li>To install Java: <code class="docutils literal"><span 
class="pre">yum</span> <span class="pre">install</span> <span 
class="pre">-y</span> <span class="pre">jdk</span></code></li>
+</ul>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>enable search in riak.conf</dt>
+<dd><ul class="first last">
+<li><code class="docutils literal"><span class="pre">vim</span> <span 
class="pre">/etc/riak/riak.conf</span></code></li>
+<li>look for search and change <code class="docutils literal"><span 
class="pre">search</span> <span class="pre">=</span> <span 
class="pre">off</span></code> to <code class="docutils literal"><span 
class="pre">search</span> <span class="pre">=</span> <span 
class="pre">on</span></code></li>
+</ul>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>Restart Riak so search is on</dt>
+<dd><ul class="first last">
+<li><code class="docutils literal"><span class="pre">service</span> <span 
class="pre">riak</span> <span class="pre">restart</span></code></li>
+</ul>
+</dd>
+</dl>
+</li>
+</ol>
+<p>One time configuration:</p>
+<ol class="arabic simple">
+<li><strong>On one of the Riak servers in the cluster run the following 
riak-admin commands</strong></li>
+</ol>
+<p><code class="docutils literal"><span class="pre">riak-admin</span> <span 
class="pre">security</span> <span class="pre">grant</span> <span 
class="pre">search.admin</span> <span class="pre">on</span> <span 
class="pre">schema</span> <span class="pre">to</span> <span 
class="pre">admin</span></code></p>
+<p><code class="docutils literal"><span class="pre">riak-admin</span> <span 
class="pre">security</span> <span class="pre">grant</span> <span 
class="pre">search.admin</span> <span class="pre">on</span> <span 
class="pre">index</span> <span class="pre">to</span> <span 
class="pre">admin</span></code></p>
+<p><code class="docutils literal"><span class="pre">riak-admin</span> <span 
class="pre">security</span> <span class="pre">grant</span> <span 
class="pre">search.query</span> <span class="pre">on</span> <span 
class="pre">index</span> <span class="pre">to</span> <span 
class="pre">admin</span></code></p>
+<p><code class="docutils literal"><span class="pre">riak-admin</span> <span 
class="pre">security</span> <span class="pre">grant</span> <span 
class="pre">search.query</span> <span class="pre">on</span> <span 
class="pre">index</span> <span class="pre">sslkeys</span> <span 
class="pre">to</span> <span class="pre">admin</span></code></p>
+<p><code class="docutils literal"><span class="pre">riak-admin</span> <span 
class="pre">security</span> <span class="pre">grant</span> <span 
class="pre">search.query</span> <span class="pre">on</span> <span 
class="pre">index</span> <span class="pre">to</span> <span 
class="pre">riakuser</span></code></p>
+<p><code class="docutils literal"><span class="pre">riak-admin</span> <span 
class="pre">security</span> <span class="pre">grant</span> <span 
class="pre">search.query</span> <span class="pre">on</span> <span 
class="pre">index</span> <span class="pre">sslkeys</span> <span 
class="pre">to</span> <span class="pre">riakuser</span></code></p>
+<p><code class="docutils literal"><span class="pre">riak-admin</span> <span 
class="pre">security</span> <span class="pre">grant</span> <span 
class="pre">riak_core.set_bucket</span> <span class="pre">on</span> <span 
class="pre">any</span> <span class="pre">to</span> <span 
class="pre">admin</span></code></p>
+<ol class="arabic simple" start="2">
+<li><dl class="first docutils">
+<dt>Add the search schema to Riak.  This schema is a simple Apache Solr 
configuration file which will index all records on cdn, hostname, and 
deliveryservice.</dt>
+<dd><ul class="first last">
+<li>Get the schema file by either cloning the project and going to 
<cite>traffic_ops/app/config/misc/riak_search</cite> or from <a 
class="reference external" 
href="https://github.com/apache/incubator-trafficcontrol/tree/master/traffic_ops/app/conf/misc/riak_search";>github</a>.</li>
+<li>Use curl to add the schema to riak: <code class="docutils literal"><span 
class="pre">curl</span> <span class="pre">-kvs</span> <span 
class="pre">-XPUT</span> <span 
class="pre">&quot;https://admin:pass&#64;riakserver:8088/search/schema/sslkeys&quot;</span>
 <span class="pre">-H</span> <span 
class="pre">'Content-Type:application/xml'</span>&#160; <span 
class="pre">-d</span> <span class="pre">&#64;sslkeys.xml</span></code></li>
+</ul>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>Add search index to Riak</dt>
+<dd><ul class="first last">
+<li>run the following curl command:  <code class="docutils literal"><span 
class="pre">curl</span> <span class="pre">-kvs</span> <span 
class="pre">-XPUT</span> <span 
class="pre">&quot;https://admin:pass&#64;riakserver:8088/search/index/sslkeys&quot;</span>
 <span class="pre">-H</span> <span class="pre">'Content-Type:</span> <span 
class="pre">application/json'</span> <span class="pre">-d</span> <span 
class="pre">'{&quot;schema&quot;:&quot;sslkeys&quot;}'</span></code></li>
+</ul>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>Associate the sslkeys index to the ssl bucket in Riak</dt>
+<dd><ul class="first last">
+<li>run the following curl command: <code class="docutils literal"><span 
class="pre">curl</span> <span class="pre">-kvs</span> <span 
class="pre">-XPUT</span> <span 
class="pre">&quot;https://admin:pass&#64;riakserver:8088/buckets/ssl/props&quot;</span>
 <span class="pre">-H'content-type:application/json'</span> <span 
class="pre">-d'{&quot;props&quot;:{&quot;search_index&quot;:&quot;sslkeys&quot;}}'</span></code></li>
+</ul>
+</dd>
+</dl>
+</li>
+</ol>
+<p>Riak Search (using Apache Solr) will now index all NEW records that are 
added to the “ssl” bucket.  The cdn, deliveryservice, and hostname fields 
are indexed and when a search is performed riak will return the indexed fields 
along with the crt and key values for a ssl record.  In order to add the 
indexed fields to current records and to get the current records added, a 
standalone script needs to be run.  The following explains how to run the 
script.</p>
+<ol class="arabic simple">
+<li>Get script from github either by cloning the project and going to 
<cite>traffic_ops/app/script</cite> or from <a class="reference external" 
href="https://github.com/apache/incubator-trafficcontrol/blob/master/traffic_ops/app/script/update_riak_for_search.pl";>here</a></li>
+<li>Run the script by performing the following command <code class="docutils 
literal"><span class="pre">./update_riak_for_search.pl</span> <span 
class="pre">-to_url=https://traffic-ops.kabletown.net</span> <span 
class="pre">-to_un=user</span> <span 
class="pre">-to_pw=password</span></code></li>
+</ol>
+<p>Validate the search is working by querying against Riak directly:
+<code class="docutils literal"><span class="pre">curl</span> <span 
class="pre">-kvs</span> <span 
class="pre">&quot;https://admin:password&#64;riakserver:8088/search/query/sslkeys?wt=json&amp;q=cdn:mycdn&quot;</span></code></p>
+<p>Validation can also be done by querying Traffic Ops:
+<code class="docutils literal"><span class="pre">curl</span> <span 
class="pre">-Lvs</span> <span class="pre">-H</span> <span 
class="pre">&quot;Cookie:</span> <span class="pre">$COOKIE&quot;</span> <span 
class="pre">https://traffic-ops.kabletown.net/api/1.2/cdns/name/mycdn/sslkeys.json</span></code></p>
+</div>
+</div>
+</div>
+
+
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer 
navigation">
+      
+        <a href="quick_howto/index.html" class="btn btn-neutral float-right" 
title="Quick How To Guides">Next <span class="fa 
fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="traffic_server.html" class="btn btn-neutral" title="Traffic 
Server Administration"><span class="fa fa-arrow-circle-left"></span> 
Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/";>Sphinx</a> using a <a 
href="https://github.com/snide/sphinx_rtd_theme";>theme</a> provided by <a 
href="https://readthedocs.org";>Read the Docs</a>.
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.8.1',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol-website/blob/5e5852e7/docs/latest/basics/cache_revalidation.html
----------------------------------------------------------------------
diff --git a/docs/latest/basics/cache_revalidation.html 
b/docs/latest/basics/cache_revalidation.html
new file mode 100644
index 0000000..6d4fa0c
--- /dev/null
+++ b/docs/latest/basics/cache_revalidation.html
@@ -0,0 +1,306 @@
+
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Cache Control Headers and Revalidation &mdash; Traffic Control 1.8.1 
documentation </title>
+  
+
+  
+  
+    <link rel="shortcut icon" href="../_static/favicon.ico"/>
+  
+
+  
+
+  
+  
+    
+
+  
+
+  
+  
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+  
+
+  
+    <link rel="stylesheet" href="../_static/theme_overrides.css" 
type="text/css" />
+  
+
+  
+        <link rel="index" title="Index"
+              href="../genindex.html"/>
+        <link rel="search" title="Search" href="../search.html"/>
+    <link rel="top" title="Traffic Control 1.8.1 documentation" 
href="../index.html"/>
+        <link rel="up" title="CDN Basics" href="index.html"/>
+        <link rel="next" title="Traffic Control Overview" 
href="../overview/index.html"/>
+        <link rel="prev" title="Caching Proxies" href="caching_proxies.html"/> 
+
+  
+  <script src="_static/js/modernizr.min.js"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-nav-search">
+        
+
+        
+          <a href="/" class="icon icon-home"> Traffic Control
+        
+
+        
+          
+          <img src="../_static/tc_logo.png" class="logo" />
+        
+        </a>
+
+        
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" 
method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+
+        
+      </div>
+
+      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" 
aria-label="main navigation">
+        
+          
+          
+              <ul class="current">
+<li class="toctree-l1 current"><a class="reference internal" 
href="index.html">CDN Basics</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" 
href="content_delivery_networks.html">Content Delivery Networks</a></li>
+<li class="toctree-l2"><a class="reference internal" href="http_11.html">HTTP 
1.1</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="caching_proxies.html">Caching Proxies</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" 
href="#">Cache Control Headers and Revalidation</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../overview/index.html">Traffic Control Overview</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/introduction.html">Introduction</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_ops.html">Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_portal.html">Traffic Portal</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_router.html">Traffic Router</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_monitor.html">Traffic Monitor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_stats.html">Traffic Stats</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_server.html">Traffic Server</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../overview/traffic_vault.html">Traffic Vault</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../admin/index.html">Administrator’s Guide</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_ops_install.html">Installing Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_ops_config.html">Configuring Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_ops_using.html">Using Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_ops_extensions.html">Managing Traffic Ops 
Extensions</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_portal.html">Traffic Portal Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_monitor.html">Traffic Monitor Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_router.html">Traffic Router Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_stats.html">Traffic Stats Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_server.html">Traffic Server Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/traffic_vault.html">Traffic Vault Administration</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../admin/quick_howto/index.html">Quick How To Guides</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../development/index.html">Developer’s Guide</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_ops.html">Traffic Ops</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_portal.html">Traffic Portal</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_router.html">Traffic Router</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_monitor.html">Traffic Monitor</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_stats.html">Traffic Stats</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../development/traffic_server.html">Traffic Server</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../faq/index.html">FAQ</a><ul>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/general.html">General</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/development.html">Development</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="../faq/administration.html">Running a Traffic Control CDN</a></li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" 
href="../glossary.html">Glossary</a></li>
+</ul>
+
+          
+        
+      </div>
+      &nbsp;
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../index.html">Traffic Control</a>
+      </nav>
+
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../index.html">Traffic Control 1.8.1</a> &raquo;</li>
+      
+          <li><a href="index.html">CDN Basics</a> &raquo;</li>
+      
+    <li>Cache Control Headers and Revalidation</li>
+      <li class="wy-breadcrumbs-aside">
+        
+          <a href="../_sources/basics/cache_revalidation.rst.txt" 
rel="nofollow"> View page source</a>
+        
+      </li>
+  </ul>
+  <hr/>
+</div>
+                 
+                 <div class="rst-footer-buttons" role="navigation" 
aria-label="footer navigation">
+                 
+                         <a href="../overview/index.html" class="btn 
btn-neutral float-right" title="Traffic Control Overview">Next <span class="fa 
fa-arrow-circle-right"></span></a>
+                 
+                 
+                         <a href="caching_proxies.html" class="btn 
btn-neutral" title="Caching Proxies"><span class="fa 
fa-arrow-circle-left"></span> Previous</a>
+                 
+                 </div>
+                 
+          <div role="main" class="document">
+            
+  <div class="section" id="cache-control-headers-and-revalidation">
+<span id="index-0"></span><h1>Cache Control Headers and Revalidation<a 
class="headerlink" href="#cache-control-headers-and-revalidation" 
title="Permalink to this headline">¶</a></h1>
+<p>The <a class="reference external" 
href="https://www.ietf.org/rfc/rfc2616.txt";>HTTP/1.1 spec</a> allows for origin 
servers and clients to influence how caches treat their requests and responses. 
By default, the Traffic Control CDN will honor cache control headers. Most 
commonly, origin servers will tell the downstream caches how long a response 
can be cached:</p>
+<div class="highlight-default"><div class="highlight"><pre><span></span><span 
class="n">HTTP</span><span class="o">/</span><span class="mf">1.1</span> <span 
class="mi">200</span> <span class="n">OK</span>
+<span class="n">Date</span><span class="p">:</span> <span 
class="n">Sun</span><span class="p">,</span> <span class="mi">14</span> <span 
class="n">Dec</span> <span class="mi">2014</span> <span 
class="mi">23</span><span class="p">:</span><span class="mi">22</span><span 
class="p">:</span><span class="mi">44</span> <span class="n">GMT</span>
+<span class="n">Server</span><span class="p">:</span> <span 
class="n">Apache</span><span class="o">/</span><span class="mf">2.2</span><span 
class="o">.</span><span class="mi">15</span> <span class="p">(</span><span 
class="n">Red</span> <span class="n">Hat</span><span class="p">)</span>
+<span class="n">Last</span><span class="o">-</span><span 
class="n">Modified</span><span class="p">:</span> <span 
class="n">Sun</span><span class="p">,</span> <span class="mi">14</span> <span 
class="n">Dec</span> <span class="mi">2014</span> <span 
class="mi">23</span><span class="p">:</span><span class="mi">18</span><span 
class="p">:</span><span class="mi">51</span> <span class="n">GMT</span>
+<span class="n">ETag</span><span class="p">:</span> <span 
class="s2">&quot;1aa008f-2d-50a3559482cc0&quot;</span>
+<span class="n">Cache</span><span class="o">-</span><span 
class="n">Control</span><span class="p">:</span> <span 
class="nb">max</span><span class="o">-</span><span class="n">age</span><span 
class="o">=</span><span class="mi">86400</span>
+<span class="n">Content</span><span class="o">-</span><span 
class="n">Length</span><span class="p">:</span> <span class="mi">45</span>
+<span class="n">Connection</span><span class="p">:</span> <span 
class="n">close</span>
+<span class="n">Content</span><span class="o">-</span><span 
class="n">Type</span><span class="p">:</span> <span class="n">text</span><span 
class="o">/</span><span class="n">html</span><span class="p">;</span> <span 
class="n">charset</span><span class="o">=</span><span class="n">UTF</span><span 
class="o">-</span><span class="mi">8</span>
+
+<span class="o">&lt;</span><span class="n">html</span><span 
class="o">&gt;&lt;</span><span class="n">body</span><span 
class="o">&gt;</span><span class="n">This</span> <span class="ow">is</span> 
<span class="n">a</span> <span class="n">fun</span> <span 
class="n">file</span><span class="o">&lt;/</span><span 
class="n">body</span><span class="o">&gt;&lt;/</span><span 
class="n">html</span><span class="o">&gt;</span>
+</pre></div>
+</div>
+<p>In the above response, the origin server tells downstream caching systems 
that the maximum time to cache this response for is 86400 seconds. The origin 
can also add a <code class="docutils literal"><span 
class="pre">Expires:</span></code> header, explicitly telling the cache the 
time this response is to be expired. When a response is expired it usually 
doesn’t get deleted from the cache, but, when a request comes in that would 
have hit on this response if it was not expired, the cache <em>revalidates</em> 
the response. In stead of requesting the object again from the origin server, 
the cache will send a request to the origin indicating what version of the 
response it has, and asking if it has changed. If it changed, the server will 
send a <code class="docutils literal"><span class="pre">200</span> <span 
class="pre">OK</span></code> response, with the new data. If it has not 
changed, the origin server will send back a <code class="docutils 
literal"><span class="pre">304</span> <
 span class="pre">Not</span> <span class="pre">Modified</span></code> response 
indicating the response is still valid, and that the cache can reset the timer 
on the response expiration. To indicate what version the client (cache) has it 
will add an <code class="docutils literal"><span 
class="pre">If-Not-Modified-Since:</span></code> header, or an <code 
class="docutils literal"><span class="pre">If-None-Match:</span></code> header. 
 For example, in the <code class="docutils literal"><span 
class="pre">If-None-Match:</span></code> case, the origin will send and <code 
class="docutils literal"><span class="pre">ETag</span></code> header that 
uniquely identifies the response. The client can use that in an revalidation 
request like:</p>
+<div class="highlight-default"><div class="highlight"><pre><span></span><span 
class="n">GET</span> <span class="o">/</span><span class="n">foo</span><span 
class="o">/</span><span class="n">bar</span><span class="o">/</span><span 
class="n">fun</span><span class="o">.</span><span class="n">html</span> <span 
class="n">HTTP</span><span class="o">/</span><span class="mf">1.1</span>
+<span class="n">If</span><span class="o">-</span><span 
class="kc">None</span><span class="o">-</span><span class="n">Match</span><span 
class="p">:</span> <span class="s2">&quot;1aa008f-2d-50a3559482cc0&quot;</span>
+<span class="n">Host</span><span class="p">:</span> <span 
class="n">www</span><span class="o">.</span><span class="n">origin</span><span 
class="o">.</span><span class="n">com</span>
+</pre></div>
+</div>
+<p>If the content has changed (meaning, the new response would not have had 
the same ETag) it will respond with <code class="docutils literal"><span 
class="pre">200</span> <span class="pre">OK</span></code>, like:</p>
+<div class="highlight-default"><div class="highlight"><pre><span></span><span 
class="n">HTTP</span><span class="o">/</span><span class="mf">1.1</span> <span 
class="mi">200</span> <span class="n">OK</span>
+<span class="n">Date</span><span class="p">:</span> <span 
class="n">Sun</span><span class="p">,</span> <span class="mi">18</span> <span 
class="n">Dec</span> <span class="mi">2014</span> <span 
class="mi">3</span><span class="p">:</span><span class="mi">22</span><span 
class="p">:</span><span class="mi">44</span> <span class="n">GMT</span>
+<span class="n">Server</span><span class="p">:</span> <span 
class="n">Apache</span><span class="o">/</span><span class="mf">2.2</span><span 
class="o">.</span><span class="mi">15</span> <span class="p">(</span><span 
class="n">Red</span> <span class="n">Hat</span><span class="p">)</span>
+<span class="n">Last</span><span class="o">-</span><span 
class="n">Modified</span><span class="p">:</span> <span 
class="n">Sun</span><span class="p">,</span> <span class="mi">14</span> <span 
class="n">Dec</span> <span class="mi">2014</span> <span 
class="mi">23</span><span class="p">:</span><span class="mi">18</span><span 
class="p">:</span><span class="mi">51</span> <span class="n">GMT</span>
+<span class="n">ETag</span><span class="p">:</span> <span 
class="s2">&quot;1aa008f-2d-50aa00feadd&quot;</span>
+<span class="n">Cache</span><span class="o">-</span><span 
class="n">Control</span><span class="p">:</span> <span 
class="nb">max</span><span class="o">-</span><span class="n">age</span><span 
class="o">=</span><span class="mi">604800</span>
+<span class="n">Content</span><span class="o">-</span><span 
class="n">Length</span><span class="p">:</span> <span class="mi">49</span>
+<span class="n">Connection</span><span class="p">:</span> <span 
class="n">close</span>
+<span class="n">Content</span><span class="o">-</span><span 
class="n">Type</span><span class="p">:</span> <span class="n">text</span><span 
class="o">/</span><span class="n">html</span><span class="p">;</span> <span 
class="n">charset</span><span class="o">=</span><span class="n">UTF</span><span 
class="o">-</span><span class="mi">8</span>
+
+<span class="o">&lt;</span><span class="n">html</span><span 
class="o">&gt;&lt;</span><span class="n">body</span><span 
class="o">&gt;</span><span class="n">This</span> <span class="ow">is</span> 
<span class="n">NOT</span> <span class="n">a</span> <span class="n">fun</span> 
<span class="n">file</span><span class="o">&lt;/</span><span 
class="n">body</span><span class="o">&gt;&lt;/</span><span 
class="n">html</span><span class="o">&gt;</span>
+</pre></div>
+</div>
+<p>If the Content did not change (meaning, the response would have had the 
same ETag) it will respond with <code class="docutils literal"><span 
class="pre">304</span> <span class="pre">Not</span> <span 
class="pre">Modified</span></code>, like:</p>
+<div class="highlight-default"><div class="highlight"><pre><span></span><span 
class="mi">304</span> <span class="n">Not</span> <span class="n">Modified</span>
+<span class="n">Date</span><span class="p">:</span> <span 
class="n">Sun</span><span class="p">,</span> <span class="mi">18</span> <span 
class="n">Dec</span> <span class="mi">2014</span> <span 
class="mi">3</span><span class="p">:</span><span class="mi">22</span><span 
class="p">:</span><span class="mi">44</span> <span class="n">GMT</span>
+<span class="n">Server</span><span class="p">:</span> <span 
class="n">Apache</span><span class="o">/</span><span class="mf">2.2</span><span 
class="o">.</span><span class="mi">15</span> <span class="p">(</span><span 
class="n">Red</span> <span class="n">Hat</span><span class="p">)</span>
+<span class="n">Last</span><span class="o">-</span><span 
class="n">Modified</span><span class="p">:</span> <span 
class="n">Sun</span><span class="p">,</span> <span class="mi">14</span> <span 
class="n">Dec</span> <span class="mi">2014</span> <span 
class="mi">23</span><span class="p">:</span><span class="mi">18</span><span 
class="p">:</span><span class="mi">51</span> <span class="n">GMT</span>
+<span class="n">ETag</span><span class="p">:</span> <span 
class="s2">&quot;1aa008f-2d-50a3559482cc0&quot;</span>
+<span class="n">Cache</span><span class="o">-</span><span 
class="n">Control</span><span class="p">:</span> <span 
class="nb">max</span><span class="o">-</span><span class="n">age</span><span 
class="o">=</span><span class="mi">604800</span>
+<span class="n">Content</span><span class="o">-</span><span 
class="n">Length</span><span class="p">:</span> <span class="mi">45</span>
+<span class="n">Connection</span><span class="p">:</span> <span 
class="n">close</span>
+<span class="n">Content</span><span class="o">-</span><span 
class="n">Type</span><span class="p">:</span> <span class="n">text</span><span 
class="o">/</span><span class="n">html</span><span class="p">;</span> <span 
class="n">charset</span><span class="o">=</span><span class="n">UTF</span><span 
class="o">-</span><span class="mi">8</span>
+</pre></div>
+</div>
+<p>Note that the 304 response only has headers, not the data.</p>
+</div>
+
+
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer 
navigation">
+      
+        <a href="../overview/index.html" class="btn btn-neutral float-right" 
title="Traffic Control Overview">Next <span class="fa 
fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="caching_proxies.html" class="btn btn-neutral" title="Caching 
Proxies"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+    </p>
+  </div>
+  Built with <a href="http://sphinx-doc.org/";>Sphinx</a> using a <a 
href="https://github.com/snide/sphinx_rtd_theme";>theme</a> provided by <a 
href="https://readthedocs.org";>Read the Docs</a>.
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.8.1',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+
+  
+
+  
+  
+    <script type="text/javascript" src="../_static/js/theme.js"></script>
+  
+
+  
+  
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+   
+
+</body>
+</html>
\ No newline at end of file

Reply via email to