| 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 |
| |
| traffic/ ............... top src dir |
| |-- ci/ ................ quality assurance and other CI tools and configs |
| |-- cmd/ ............... various command applications |
| |-- traffic_cop/ ... traffic_cop application |
| |-- traffic_line/ .. Command line utilities and API |
| |-- traffic_shell/ . traffic_shell application |
| |-- traffic_top/ ... traffic_top application |
| |-- contrib ............ various contributed auxiliary pieces |
| |-- doc/ ............... |
| |-- admin/ ......... Admin guide documentations |
| |-- dot/ ........... Graphviz source files for docs pictures |
| |-- man/ ........... Unix style man-pages |
| |-- plugins/ ....... Documentation for our core plugins |
| |-- sdk/ ........... Plugin developer guide |
| |-- example/ ........... example plugins |
| |-- install/ ........... installation programs and scripts |
| |-- iocore/ ............ |
| |-- aio/ ........... Asynchronous I/O core |
| |-- cache/ ......... Disk and RAM cache |
| |-- cluster/ ....... Cache and configuration clustering |
| |-- dns/ ........... DNS (asynchronous) |
| |-- hostdb/ ........ Internal DNS cache |
| |-- net/ ........... Network |
| |-- lib/ ............... |
| |-- cpp11api ....... C++ '11 wrapper for plugin developers |
| |-- records/ ....... library for config files |
| |-- perl/ .......... Perl libraries for e.g. mgmt access and configurations |
| |-- ts/ ............ Base / core library |
| |-- tsconfig/....... New config parser and library (experimental) |
| |-- wccp/ .......... WCCP implementation |
| |-- m4/ ................ custom macros for configure.ac |
| |-- mgmt/ .............. Management server and tools (including traffic_manager) |
| |-- plugins/ ........... Core plugins (stable and experiemental) |
| |-- proxy/ ............. HTTP proxy logic |
| |-- api/ ........... Plugin API includes |
| |-- config/ ........ Configurations |
| |-- congest/ ....... Congestion control |
| |-- hdrs/ .......... Headers parsing and management |
| |-- http/ .......... The actual HTTP protocol implementation |
| |-- logging/ ....... Flexible logging |
| |-- README ............. intro, links, build info |
| |-- README-EC2 ......... info on EC2 support |
| |-- REVIEWERS .......... (incomplete) list of areas with committer interest |
| |-- LICENSE ............ full license text |
| `-- NOTICE ............. copyright notices |
| |
| 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>. |
| |
| Fedora 12-19 / CentOS / RHEL: |
| autoconf |
| automake |
| pkgconfig |
| libtool |
| perl-ExtUtils-MakeMaker |
| gcc-c++ |
| glibc-devel |
| openssl-devel |
| tcl-devel |
| expat-devel |
| pcre |
| pcre-devel |
| libcap-devel (optional, highly recommended) |
| flex (optional, needed for e.g. WCCP) |
| hwloc-devel (optional, highly recommended) |
| lua-devel (optional) |
| |
| Fedora 8 EC2 (Kernel: 2.6.21.7-2.ec2.v1.2.fc8xen): |
| FC8 on EC2 requires unique configure declarations, please see that section |
| below. |
| |
| NOTE: Alternately you may use the install scripts in 'contrib' which |
| automate this or use the pre-built public Fedora Core 8 EC2 AMI |
| with ATS installed. Both of which are HIGHLY RECOMMENDED. |
| See 'README-EC2' for further details. |
| |
| autoconf |
| automake |
| pkgconfig |
| libtool |
| perl-ExtUtils-MakeMaker |
| gcc-c++ |
| glibc-devel |
| openssl-devel |
| tcl-devel |
| expat-devel |
| pcre |
| |
| Ubuntu 8.* - 13.*: |
| autoconf |
| automake |
| pkg-config |
| libtool |
| libmodule-install-perl |
| g++ |
| libssl-dev |
| tcl-dev |
| expat |
| libexpat-dev |
| libpcre3-dev |
| libcap-dev (optional, highly recommended) |
| flex (optional, required for e.g. WCCP) |
| libhwloc-dev (optional, highly recommended) |
| liblua5.1-dev or libluajit-5.1-dev (optional) |
| libncurses5-dev (optional, required for e.g.: tstop) |
| libcurl4-openssl-dev (optional, required for e.g.: tstop) |
| |
| Ubuntu EC2 9.10: |
| NOTE: Alternately you may use the install scripts in 'contrib' which |
| automate this or use the pre-built public Ubuntu EC2 AMI with |
| ATS installed. Both of which are HIGHLY RECOMMENDED. |
| See 'README-EC2' for further details. |
| |
| Install these packages: |
| autoconf |
| automake |
| pkg-config |
| libtool |
| libmodule-install-perl |
| g++ |
| libssl-dev |
| tcl-dev |
| expat |
| libexpat-dev |
| libpcre3-dev |
| flex (optional) |
| libhwloc-dev (optional, highly recommended) |
| liblua-dev (optional) |
| libncurses5-dev (optional, required for e.g.: tstop) |
| libcurl3-openssl-dev (optional, required for e.g.: tstop) |
| |
| FreeBSD 7.2,8.0,9.0,9.1 |
| GCC 4.2.1 compiler suite or clang. You can install the following |
| packages either from ports or via pkg_add or pkgng: |
| devel/gmake |
| devel/autoconf |
| devel/automake |
| devel/pkgconf |
| devel/libtool |
| lang/tcl85 |
| textproc/expat (or expat2) |
| security/openssl |
| devel/pcre |
| textproc/flex (optional, install newer version from ports, fix PATH) |
| devel/hwloc (optional, highly recommended) |
| lang/lua (optional, on x64 don't use LuaJIT!) |
| |
| OmniOS: |
| developer/gcc46 |
| developer/build/gnu-make |
| developer/build/autoconf |
| developer/build/automake-111 |
| developer/build/libtool |
| omniti/runtime/tcl-8 |
| library/expat |
| library/security/openssl |
| library/pcre |
| |
| OSX 10.5: |
| GCC 4.2.4 compiler suite (ports collection) |
| autoconf |
| automake |
| pkgconfig |
| libtool |
| tcl |
| expat |
| openssl |
| 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 repo |
| cd trafficserver # enter the checkout dir |
| 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: http://trafficserver.apache.org/ |
| Wiki: http://cwiki.apache.org/confluence/display/TS/ |
| User mailing list: users@trafficserver.apache.org |