Mirror of Apache Traffic Server
Clone or download
Permalink
Failed to load latest commit information.
.vscode Update runroot to use yaml-cpp library Jun 26, 2018
build Follow up for #3724 - fix out of tree builds. Sep 13, 2018
ci Run automake and autoconf everytime on a docs build Sep 19, 2018
configs Revert "Add TLSv1.3 cipher suites for OpenSSL-1.1.1" Aug 30, 2018
contrib Remove proxy.config.config_dir from records.config Jul 10, 2018
doc Corrects typo in argument name Sep 19, 2018
example PR-3724: Fix additional linkage issues. Sep 17, 2018
include revoke promise when provider is gone Sep 12, 2018
iocore Follow up for #3724 - fix out of tree builds. Sep 13, 2018
lib Follow up for #3724 - fix out of tree builds. Sep 13, 2018
mgmt Follow up for #3724 - fix out of tree builds. Sep 13, 2018
plugins PR-3724: Fix additional linkage issues. Sep 17, 2018
proxy YTSATS-2300: Reset the inactivity timeout to the transaction timeout … Sep 19, 2018
rc Increase limit on open files allowed as a service Aug 17, 2018
src Test: Convert test_Map.cc to Catch Sep 19, 2018
tests Update base version of AuTest to 1.6.0 Sep 19, 2018
tools PR #3724: Restructure library headers to unify include paths. Sep 11, 2018
.clang-analyzer Better github PR support, and per-branch rules Apr 19, 2017
.clang-format Updated to new version of clang-format Apr 25, 2018
.clang-tidy Updated clang-tidy default config to be the option that have been com… May 25, 2017
.editorconfig Restores the expected non-tab indentations May 17, 2018
.gitignore Test: Convert test_Map.cc to Catch Sep 19, 2018
.vimrc Change textwidth option to 132 so that it corresponds to the line len… Jun 14, 2017
CMakeLists.txt CMakeLists.txt: Change to be generic and not need updates after every… Sep 19, 2018
CONTRIBUTING.md Removed spaces at the end of the line on all files Feb 16, 2017
CRUFT.txt TS-3170 First stab at cleaning out the mgmt web server stuff Jun 15, 2015
INSTALL Remove even more clustering bits May 9, 2017
LAYOUT Let's start by not claiming master refers to ATS 2.1... Feb 4, 2013
LICENSE Added the OpenSSL license Feb 18, 2017
Makefile.am Corrects path in multiple documents Sep 13, 2018
NOTICE Corrects path in multiple documents Sep 13, 2018
README Minor update on README's directory structure Jul 17, 2018
README-EC2 Change these two bad boys from DOS line feeds to real one... Nov 21, 2013
REVIEWERS Removes the remnants of congestion.config and related code May 8, 2018
STATUS Updates the STATUS file with all recent releases Apr 17, 2018
Vagrantfile Update Vagrant with Fedora 24 Jul 18, 2016
config.layout Update libexecdir of Layout GNU from config.layout Jun 1, 2018
configure.ac Follow up for #3724 - fix out of tree builds. Sep 13, 2018
emacs-style TS-95: More RAT fixes and additions to the exclude file. Feb 9, 2010
setup.cfg Add settings for autopep8 Jun 15, 2017

README

Apache Traffic Server

Traffic Server is a high-performance building block for cloud services.
It's more than just a caching proxy server; it also has support for
plugins to build large scale web applications.

1. DIRECTORY STRUCTURE

  trafficserver/ ............ Top src dir
  |-- build/ ................ Custom macros for configure.ac
  |-- ci/ ................... Quality assurance and other CI tools and configs
  |-- configs/ .............. Configurations
  |-- contrib/ .............. Various contributed auxiliary pieces
  |-- doc/ .................. Documentations for Traffic Server
      |-- admin-guide/ ...... Admin guide documentations
      |-- appendices/ ....... Appendices of Traffic Server
      |-- developer-guide/ .. Documentaions for developers
      |-- dot/ .............. Graphviz source files for docs pictures
      |-- static/ ........... Static resources
      |-- uml/ .............. Documentations in UML
  |-- example/ .............. Example plugins
  |-- iocore/ ...............
      |-- aio/ .............. Asynchronous I/O core
      |-- cache/ ............ Disk and RAM cache
      |-- eventsystem/ ...... Event Driven Engine
      |-- dns/ .............. DNS (asynchronous)
      |-- hostdb/ ........... Internal DNS cache
      |-- net/ .............. Network
      |-- utils/ ............ Utilities
  |-- lib/ ..................
      |-- cppapi/ ........... C++ api wrapper for plugin developers
      |-- perl/ ............. Perl libraries for e.g. mgmt access and configurations
      |-- records/ .......... Library for config files
      |-- ts/ ............... Base / core library
      |-- tsconfig/.......... New config parser and library (experimental)
      |-- wccp/ ............. WCCP implementation
      |-- yamlcpp/ .......... Library for YAML of C++
  |-- mgmt/ ................. Management server and tools
  |-- plugins/ .............. Stable core plugins
      |-- experimental/ ..... Experimental core plugins
  |-- proxy/ ................ HTTP proxy logic
      |-- api/ .............. Plugin API includes
      |-- hdrs/ ............. Headers parsing and management
      |-- http/ ............. The actual HTTP protocol implementation
      |---http2/ ............ HTTP/2 implementation
      |-- logging/ .......... Flexible logging
      |-- shared/ ........... Shared files
  |-- rc/ ................... Installation programs and scripts
  |-- src/ .................. Source for all the main binaries / applications
      |-- traffic_cache_tool/ Tool to interact with the Traffic Server cache
      |-- traffic_crashlog/ . Helper process that catches Traffic Server crashes
      |-- traffic_ctl/ ...... Command line management tool
      |-- traffic_layout/ ... Display information on the build and runtime directory structure
      |-- traffic_logcat/ ... Convert binary log file to plain text
      |-- traffic_logstats/ . Log parsing and metrics calculation utility
      |-- traffic_manager/ .. The manager process for Traffic Server
      |-- traffic_server/ ... Main proxy server
      |-- traffic_top/ ...... Top like tool for viewing Traffic Server statistics
      |-- traffic_via/ ...... Tool for decoding the Traffic Server Via header codes
      |-- traffic_wccp/ ..... Program speaking the client side of the WCCP
  |-- tests/ ................ Different tests for Traffic Server
  |-- tools/ ................ Directory of various tools
  |-- INSTALL ............... Build and installation guide
  |-- LAYOUT ................ Traffic Server default layout
  |-- LICENSE ............... Full license text
  |-- NOTICE ................ Copyright notices
  |-- README ................ Intro, links, build info
  |-- README-EC2 ............ Info on EC2 support
  |-- REVIEWERS ............. (Incomplete) list of areas with committer interest
  `-- STATUS ................ Release history and information

2. REQUIREMENTS

  This section outlines build requirements for different OS
  distributions. This may be out of date compared to the on-line
  requirements at

  <https://cwiki.apache.org/confluence/display/TS/Building>.

  As of ATS v7.0.0 and later, gcc 4.8.1 or later is required, since we now use
  and require the C++11 standard.

  Fedora / CentOS / RHEL:
    autoconf
    automake
    libtool
    pkgconfig
    perl-ExtUtils-MakeMaker
    gcc/g++ or clang/clang++
    openssl-devel
    tcl-devel
    pcre-devel
    ncurses-devel and libcurl-devel(optional, needed for traffic_top)
    libcap-devel (optional, highly recommended)
    hwloc-devel (optional, highly recommended)
    flex (optional, needed for e.g. WCCP)

  Ubuntu / Debian
    autoconf
    automake
    libtool
    pkg-config
    libmodule-install-perl
    gcc/g++ or clang/clang++
    libssl-dev
    tcl-dev
    libpcre3-dev
    libcap-dev (optional, highly recommended)
    libhwloc-dev (optional, highly recommended)
    libncurses5-dev (optional, required for e.g.: traffic_top)
    libcurl4-openssl-dev (optional, required for e.g.: traffic_top)
    flex (optional, required for e.g. WCCP)

  Alpine Linux
    build-base
    libexecinfo-dev
    pcre-dev
    libressl-dev
    autoconf
    automake
    libtool
    tcl-dev
    linux-headers

  OSX (we recommend HomeBrew):
    autoconf
    automake
    pkg-config
    libtool
    tcl-tk (or tcl from Homebrew-Cask)
    openssl
    pcre

  FreeBSD
    devel/gmake
    devel/autoconf
    devel/automake
    devel/pkgconf
    devel/libtool
    lang/tcl85
    security/openssl
    devel/pcre
    textproc/flex (optional, install newer version from ports, fix PATH)
    devel/hwloc (optional, highly recommended)

  OmniOS:
    developer/gcc46
    developer/build/gnu-make
    developer/build/autoconf
    developer/build/automake-111
    developer/build/libtool
    omniti/runtime/tcl-8
    library/security/openssl
    library/pcre

3. Building from distribution

You can download the latest source code from the official Apache Traffic
Server site:

       http://trafficserver.apache.org/downloads

(or via the URL shortener: http://s.apache.org/uG). Once downloaded,
follow the instructions:

   tar xf trafficserver-2.1.8-unstable.tar.bz2
   cd trafficserver-2.1.8-unstable
  ./configure            # configure the build environment to create Makefiles
  make                   # execute the compile

This will build with a destination prefix of /usr/local. You can finish
the installation with

  sudo make install

4. BUILDING FROM GIT REPO

  mkdir -p ~/dev         # make yourself a development dir
  cd ~/dev               # enter your development dir
  git clone ...          # get the source code from ASF Git repository
  cd trafficserver       # enter the checkout directory
  autoreconf -if         # generate the configure script and Makefile.in files
  ./configure            # configure the build environment to create Makefiles
  make                   # execute the compile

4b. Instructions for building on EC2
    NOTE: Alternately you may use the scripts under 'contrib' which will
          automate the install for trafficserver under EC2 which is
          HIGHLY RECOMMENDED. See 'README-EC2' for further details.

   # As root do the following when using Ubuntu
   mkdir -p /mnt          #EC2 Storage Mount, where storage is located
   cd /mnt
   git clone ...          # get the source code from ASF Git repo
   cd trafficserver       # enter the checkout dir
   autoreconf -i --force  # generate the configure script and Makefile.in files
   ./configure
   make

   # As root do the following when using Fedora Core 8 kernel
   mkdir -p /mnt          #EC2 Storage Mount, where storage is located
   cd /mnt
   git clone ...          # get the source code from ASF Git repo
   cd trafficserver       # enter the checkout dir
   autoreconf -i --force  # generate the configure script and Makefile.in files
   ./configure --disable-eventfd
   make

4c. Instructions for building on FreeBSD

   The only difference is how to run configure and make:

   MAKE=gmake ./configure # make sure that gmake is the make we use
   gmake

5. INSTALLATION

  DEFAULT DIR                        CONTENTS
  /usr/local/var/log/trafficserver   log files created at runtime
  /usr/local/var/trafficserver       runtime files
  /usr/local/etc/trafficserver       configuration files
  /usr/local/bin                     executable binaries
  /usr/local/libexec/trafficserver   plugins

6. CRYPTO NOTICE

  This distribution includes cryptographic software.  The country in
  which you currently reside may have restrictions on the import,
  possession, use, and/or re-export to another country, of
  encryption software.  BEFORE using any encryption software, please
  check your country's laws, regulations and policies concerning the
  import, possession, or use, and re-export of encryption software, to
  see if this is permitted.  See <http://www.wassenaar.org/> for more
  information.

  The U.S. Government Department of Commerce, Bureau of Industry and
  Security (BIS), has classified this software as Export Commodity
  Control Number (ECCN) 5D002.C.1, which includes information security
  software using or performing cryptographic functions with asymmetric
  algorithms.  The form and manner of this Apache Software Foundation
  distribution makes it eligible for export under the License Exception
  ENC Technology Software Unrestricted (TSU) exception (see the BIS
  Export Administration Regulations, Section 740.13) for both object
  code and source code.

  The following provides more details on the included cryptographic
  software:

    The functionality of OpenSSL <http://www.openssl.org/> is
    utilized in parts of the software.

7. ADDITIONAL INFO

  Web page: https://trafficserver.apache.org/
  Wiki: http://cwiki.apache.org/confluence/display/TS/
  User mailing list: users@trafficserver.apache.org