forked from alibaba-archive/TrafficServer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
280 lines (240 loc) · 9.45 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
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
|-- contrib ............ various contributed auxiliary pieces
|-- cop/ ............... traffic_cop application
|-- 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)
|-- cli ............ Command line utilities and API
|-- 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
|-0 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: [email protected]