1# Based on https://github.com/openstreetmap/mod_tile/blob/master/mod_tile.conf
2
3# Specify the default base storage path for where tiles live. A number of different storage backends
4# are available, that can be used for storing tiles.  Currently these are a file based storage, a memcached
5# based storage and a RADOS based storage.
6# The file based storage uses a simple file path as its storage path ( /path/to/tiledir )
7# The RADOS based storage takes a location to the rados config file and a pool name ( rados://poolname/path/to/ceph.conf )
8# The memcached based storage currently has no configuration options and always connects to memcached on localhost ( memcached:// )
9#
10# The storage path can be overwritten on a style by style basis from the style TileConfigFile
11ModTileTileDir /k/osm/tirex/tiles
12
13# You can either manually configure each tile set with the default png extension and mimetype
14#AddTileConfig /folder/ TileSetName
15
16# or manually configure each tile set, specifying the file extension
17#AddTileMimeConfig /folder/ TileSetName js
18
19# or load all the tile sets defined in the configuration file into this virtual host.
20# Some tile set specific configuration parameters can only be specified via the configuration file option
21LoadTileConfigFile /etc/tirex/mod_tile.conf
22
23# Specify if mod_tile should keep tile delivery stats, which can be accessed from the URL /mod_tile
24# The default is On. As keeping stats needs to take a lock, this might have some performance impact,
25# but for nearly all intents and purposes this should be negligable ans so it is safe to keep this turned on.
26ModTileEnableStats On
27
28# Turns on bulk mode. In bulk mode, mod_tile does not request any dirty tiles to be rerendered. Missing tiles
29# are always requested in the lowest priority. The default is Off.
30ModTileBulkMode Off
31
32# Timeout before giving up for a tile to be rendered
33ModTileRequestTimeout 3
34
35# Timeout before giving up for a tile to be rendered that is otherwise missing
36ModTileMissingRequestTimeout 10
37
38# If tile is out of date, don't re-render it if past this load threshold (users gets old tile)
39ModTileMaxLoadOld 16
40
41# If tile is missing, don't render it if past this load threshold (user gets 404 error)
42ModTileMaxLoadMissing 50
43
44# Sets how old an expired tile has to be to be considered very old and therefore get elevated priority in rendering
45ModTileVeryOldThreshold 31536000000000
46
47# Unix domain socket where we connect to the rendering daemon
48#ModTileRenderdSocketName /var/run/renderd/renderd.sock
49ModTileRenderdSocketName /var/lib/tirex/modtile.sock
50
51# Alternatively you can use a TCP socket to connect to renderd. The first part
52# is the location of the renderd server and the second is the port to connect to.
53#   ModTileRenderdSocketAddr renderd.mydomain.com 7653
54
55##
56## Options controlling the cache proxy expiry headers. All values are in seconds.
57##
58## Caching is both important to reduce the load and bandwidth of the server, as
59## well as reduce the load time for the user. The site loads fastest if tiles can be
60## taken from the users browser cache and no round trip through the internet is needed.
61## With minutely or hourly updates, however there is a trade-off between cacheability
62## and freshness. As one can't predict the future, these are only heuristics, that
63## need tuning.
64## If there is a known update schedule such as only using weekly planet dumps to update the db,
65## this can also be taken into account through the constant PLANET_INTERVAL in render_config.h
66## but requires a recompile of mod_tile
67
68## The values in this sample configuration are not the same as the defaults
69## that apply if the config settings are left out. The defaults are more conservative
70## and disable most of the heuristics.
71
72
73##
74## Caching is always a trade-off between being up to date and reducing server load or
75## client side latency and bandwidth requirements. Under some conditions, like poor
76## network conditions it might be more important to have good caching rather than the latest tiles.
77## Therefor the following config options allow to set a special hostheader for which the caching
78## behaviour is different to the normal heuristics
79##
80## The CacheExtended parameters overwrite all other caching parameters (including CacheDurationMax)
81## for tiles being requested via the hostname CacheExtendedHostname
82#ModTileCacheExtendedHostname cache.tile.openstreetmap.org
83#ModTileCacheExtendedDuration 2592000
84
85# Upper bound on the length a tile will be set cacheable, which takes
86# precedence over other settings of cacheing
87ModTileCacheDurationMax 604800
88
89# Sets the time tiles can be cached for that are known to by outdated and have been
90# sent to renderd to be rerendered. This should be set to a value corresponding
91# roughly to how long it will take renderd to get through its queue. There is an additional
92# fuzz factor on top of this to not have all tiles expire at the same time
93ModTileCacheDurationDirty 900
94
95# Specify the minimum time mod_tile will set the cache expiry to for fresh tiles. There
96# is an additional fuzz factor of between 0 and 3 hours on top of this.
97ModTileCacheDurationMinimum 10800
98
99# Lower zoom levels are less likely to change noticeable, so these could be cached for longer
100# without users noticing much.
101# The heuristic offers three levels of zoom, Low, Medium and High, for which different minimum
102# cacheing times can be specified.
103
104#Specify the zoom level below  which Medium starts and the time in seconds for which they can be cached
105ModTileCacheDurationMediumZoom 13 86400
106
107#Specify the zoom level below which Low starts and the time in seconds for which they can be cached
108ModTileCacheDurationLowZoom 9 518400
109
110# A further heuristic to determine cacheing times is when was the last time a tile has changed.
111# If it hasn't changed for a while, it is less likely to change in the immediate future, so the
112# tiles can be cached for longer.
113# For example, if the factor is 0.20 and the tile hasn't changed in the last 5 days, it can be cached
114# for up to one day without having to re-validate.
115ModTileCacheLastModifiedFactor 0.20
116
117## Tile Throttling
118## Tile scrapers can often download large numbers of tiles and overly straining tileserver resources
119## mod_tile therefore offers the ability to automatically throttle requests from ip addresses that have
120## requested a lot of tiles.
121## The mechanism uses a token bucket approach to shape traffic. I.e. there is an initial pool of n tiles
122## per ip that can be requested arbitrarily fast. After that this pool gets filled up at a constant rate
123## The algorithm has two metrics. One based on overall tiles served to an ip address and a second one based on
124## the number of requests to renderd / tirex to render a new tile.
125
126## Overall enable or disable tile throttling
127ModTileEnableTileThrottling Off
128# Specify if you want to use the connecting IP for throtteling, or use the X-Forwarded-For header to determin the
129# IP address to be used for tile throttling. This can be useful if you have a reverse proxy / http accellerator
130# in front of your tile server.
131# 0 - don't use X-Forward-For and allways use the IP that apache sees
132# 1 - use the client IP address, i.e. the first entry in the X-Forwarded-For list. This works through a cascade of proxies.
133#     However, as the X-Forwarded-For is written by the client this is open to manipulation and can be used to circumvent the throttling
134# 2 - use the last specified IP in the X-Forwarded-For list. If you know all requests come through a reverse proxy
135#     that adds an X-Forwarded-For header, you can trust this IP to be the IP the reverse proxy saw for the request
136ModTileEnableTileThrottlingXForward 0
137## Parameters (poolsize in tiles and topup rate in tiles per second) for throttling tile serving.
138ModTileThrottlingTiles 10000 1
139## Parameters (poolsize in tiles and topup rate in tiles per second) for throttling render requests.
140ModTileThrottlingRenders 128 0.2
141
142###
143###
144# increase the log level for more detailed information
145    LogLevel debug
146