blob: c857fc1967dfe8fdbf0384b38ea9b3082ef9b995 [file] [log] [blame]
#
# strategies.yaml
#
# Documentation:
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/strategies.yaml.en.html
#
# The purpose of this file is to specify the strategies available for
# use in locating upstream caches for use to satisfy requests
#
# This is a YAML formatted file to define hosts, groups of hosts and next hop strategies that
# may be used by remap
#
# There are three top-level YAML name spaces: 'hosts', 'groups', and 'strategies'.
# 'hosts' is a YAML list of host's definitions and is used when defining 'groups' YAML
# references are supported.
# 'groups' is a YAML list that aggregates a group of hosts together and serves as the
# equivalent to the rings used in parent.config. You may define upto five groups in a
# config, see MAX_GROUPS.
# 'strategies' is a YAML list of strategy definitions.
#
# Files may be broken up into several different files. The main file loaded by the Next Hop
# Strategy factory is this file, strategies.yaml. You may move the 'hosts' and 'groups'
# definitions into separate files and then include them in this file using:
#
# '#include path_to_hosts_and_groups_file'
#
# It is even possible to put individual strategies into separate file. The Next Hop
# strategy factory concatenates all included files together in a single YAML document at
# each point where it sees an '#include file_name'. When using this feature you just need to
# ensure that the final concatenation is a valid YAML document with 'hosts', 'groups'
# and 'strategies' in this given order.
#
#
# This example YAML document shows a complete definition in a single strategies.yaml
# file. There are other example unit test files in the source tree showing examples of
# using '#include' and different formats available for use, proxy/http/remap/unit-tests/
# See the documentation which describes each parameter in detail.
#
# Example:
#
#
# hosts:
# - &p1
# host: p1.foo.com
# hash_string: slsklslsk # optional hash string that replaces the hostname in consistent hashing.
# protocol:
# - scheme: http
# port: 80
# health_check_url: http://192.168.1.1:80
# - scheme: https
# port: 443
# health_check_url: https://192.168.1.1:443
# - &p2
# host: p2.foo.com
# protocol:
# - scheme: http
# port: 80
# health_check_url: http://192.168.1.2:80
# - scheme: https
# port: 443
# health_check_url: https://192.168.1.2:443
# - &s1
# host: s1.foo.com
# hash_string: slsklslsk # optional hash string that replaces the hostname in consistent hashing.
# protocol:
# - scheme: http
# port: 80
# health_check_url: http://192.168.2.1:80
# - scheme: https
# port: 443
# health_check_url: https://192.168.2.1:443
# - &s2
# host: s2.foo.com
# protocol:
# - scheme: http
# port: 80
# health_check_url: http://192.168.2.2:80
# - scheme: https
# port: 443
# health_check_url: https://192.168.2.2:443
# groups:
# - &g1
# - <<: *p1
# weight: 0.5
# - <<: *p2
# weight: 0.5
# - &g2
# - <<: *s1
# weight: 2.0
# - <<: *s2
# weight: 1.0
# strategies:
# - strategy: 'mid-tier-north'
# policy: rr_ip # Selection strategy policy: Enum of 'consistent_hash' or 'first_live' or 'rr_strict' or 'rr_ip' or 'latched'
# hash_key: hostname # optional key to use for Hashing. Enum of 'url' or 'uri' or 'hostname' or 'path' or 'path+query' or 'cache_key' or 'path+fragment'
# go_direct: true # transactions may routed directly to the origin true/false default is true.
# parent_is_proxy: false # next hop hosts are origin servers when set to 'false', defaults to true and indicates next hop hosts are ats cache's.
# groups: # groups of hosts, these groups are used as rings in consistent hash and arrays of host groups for round_robin.
# - *g1
# - *g2
# scheme: http
# failover:
# max_simple_retries: 2 # default is 1, indicates the maximum number of simple retries for the listed response codes.
# ring_mode: exhaust_ring # enumerated as exhaust_ring or alternate_ring
# #1) in 'exhaust_ring' mode all the servers in a ring are exhausted before failing over to secondary ring
# #2) in 'alternate_ring' mode causes the failover to another server in secondary ring.
# response_codes: # defines the responses codes for failover in exhaust_ring mode
# - 404
# - 502
# - 503
# health_check: # specifies the list of health checks that should be considered for failover. A list of enums: 'passive' or 'active'
# - passive
# - active
# - strategy: 'mid-tier-south'
# policy: latched
# hash_key: uri
# go_direct: false
# parent_is_proxy: false # next hop hosts are origin servers
# groups:
# - *g1
# - *g2
# scheme: https
# failover:
# max_simple_retries: 2
# ring_mode: alternate_ring
# response_codes:
# - 404
# - 502
# - 503
# health_check:
# - passive
# - active