| 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/ .................. Documentation for Traffic Server |
| |-- admin-guide/ ...... Admin guide documentations |
| |-- appendices/ ....... Appendices of Traffic Server |
| |-- developer-guide/ .. Documentation for developers |
| |-- dot/ .............. Graphviz source files for docs pictures |
| |-- static/ ........... Static resources |
| |-- uml/ .............. Documentation in UML |
| |-- example/ .............. Example plugins |
| |-- iocore/ ............... |
| |-- aio/ .............. Asynchronous I/O core |
| |-- cache/ ............ Disk and RAM cache |
| |-- dns/ .............. DNS (asynchronous) |
| |-- eventsystem/ ...... Event Driven Engine |
| |-- hostdb/ ........... Internal DNS cache |
| |-- net/ .............. Network |
| |-- quic/ ......... QUIC implementation |
| |-- utils/ ............ Utilities |
| |-- lib/ .................. |
| |-- perl/ ............. Perl libraries for e.g. mgmt access and configurations |
| |-- records/ .......... Library for config files |
| |-- yamlcpp/ .......... Library for YAML of C++ |
| |-- mgmt/ ................. Management server and tools |
| |-- plugins/ .............. Stable core plugins |
| |-- experimental/ ..... Experimental core plugins |
| |-- proxy/ ................ HTTP proxy logic |
| |-- hdrs/ ............. Headers parsing and management |
| |-- http/ ............. The actual HTTP protocol implementation |
| |---http2/ ............ HTTP/2 implementation |
| |---http3/ ............ HTTP/3 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 |
| |-- tscore/ ........... Base / core library |
| |-- tscpp/ ............ C++ api wrapper for plugin developers |
| |-- wccp/ ............. WCCP implementation |
| |-- 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 |
| 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 |
| 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 |
| linux-headers |
| |
| macOS (we recommend HomeBrew): |
| autoconf |
| automake |
| pkg-config |
| libtool |
| openssl |
| pcre |
| |
| FreeBSD |
| devel/gmake |
| devel/autoconf |
| devel/automake |
| devel/pkgconf |
| devel/libtool |
| 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 |
| library/security/openssl |
| library/pcre |
| |
| 3. Building from distribution |
| |
| You can download the latest source code from the official Apache Traffic |
| Server site: |
| |
| https://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: https://cwiki.apache.org/confluence/display/TS/ |
| User mailing list: users@trafficserver.apache.org |