You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org
Apache Traffic Server: Difference between revisions
Jump to navigation
Jump to search
imported>Ema |
imported>Ema |
||
Line 14: | Line 14: | ||
CONFIG proxy.config.http.server_ports STRING 3128 3128:ipv6 | CONFIG proxy.config.http.server_ports STRING 3128 3128:ipv6 | ||
CONFIG proxy.config.http.cache.required_headers INT 1 | CONFIG proxy.config.http.cache.required_headers INT 1 | ||
CONFIG proxy.config.url_remap.pristine_host_hdr INT 1 | |||
</source> | </source> | ||
Revision as of 20:06, 8 March 2017
Apache Traffic Server is a caching proxy server.
Basic configuration
The basic changes to the default configuration required to get a caching proxy are:
# /etc/trafficserver/remap.config
map http://127.0.0.1:3128/ http://$origin_server_ip/
reverse_map http://$origin_server_ip/ http://127.0.0.1:3128/
# /etc/trafficserver/records.config
CONFIG proxy.config.http.server_ports STRING 3128 3128:ipv6
CONFIG proxy.config.http.cache.required_headers INT 1
CONFIG proxy.config.url_remap.pristine_host_hdr INT 1
If proxy.config.http.cache.required is set to 2, which is the default, the origin server is required to set an explicit lifetime, from either Expires or Cache-Control: max-age. By setting required_headers to 1, objects with Last-Modified are considered for caching too. Setting the value to 0 means that no headers are required to make documents cachable.
Lua scripting
ATS plugins can be written in Lua. As an example, this is how to choose an origin server dynamically:
# /etc/trafficserver/remap.config
map http://127.0.0.1:3128/ http://$origin_server_ip/ @plugin=/usr/lib/trafficserver/modules/tslua.so @pparam=/var/tmp/ats-set-backend.lua
reverse_map http://$origin_server_ip/ http://127.0.0.1:3128/
-- /var/tmp/ats-set-backend.lua
function do_remap()
url = ts.client_request.get_url()
if url:match("/api/rest_v1/") then
ts.client_request.set_url_host('origin-server.eqiad.wmnet')
ts.client_request.set_url_port(80)
ts.client_request.set_url_scheme('http')
return TS_LUA_REMAP_DID_REMAP
end
end