summaryrefslogtreecommitdiff
path: root/sci-geosciences/mod_tile/files/tileserver_vhost.include
diff options
context:
space:
mode:
Diffstat (limited to 'sci-geosciences/mod_tile/files/tileserver_vhost.include')
-rw-r--r--sci-geosciences/mod_tile/files/tileserver_vhost.include112
1 files changed, 112 insertions, 0 deletions
diff --git a/sci-geosciences/mod_tile/files/tileserver_vhost.include b/sci-geosciences/mod_tile/files/tileserver_vhost.include
new file mode 100644
index 0000000..2848e92
--- /dev/null
+++ b/sci-geosciences/mod_tile/files/tileserver_vhost.include
@@ -0,0 +1,112 @@
+# You can manually configure each tile set with AddTileConfig or AddTileMimeConfig.
+# The first argument is the URL path relative to this virtual host
+# under which a tile set is served. The second argument specifies the
+# name of the tile set. This is used in the communication with renderd
+# and is the directory under which (meta)tiles are stored on disk.
+#
+# By default (AddTileConfig) mod_tile assumes you are serving png files, however,
+# mod_tile can also serve arbitrary other tile types such as javascript vector tiles,
+# assuming the backend render daemon can handle the file type.
+# To this purpose AddTileMimeConfig takes a 3rd agument, the file extension and it
+# will guess the correct mimetype from it. If the mime type is not set correctly automatically,
+# you need to use the configuration file route, where you can specify the mimetype and file extension
+# independently.
+#
+# AddTileConfig /folder/ TileSetName
+# AddTileMimeConfig /folder2/ TileSetName2 js
+
+# Alternatively (or in addition) you can load all the tile sets defined in the configuration file into this virtual host
+LoadTileConfigFile /etc/renderd.conf
+
+# Timeout before giving up for a tile to be rendered
+ModTileRequestTimeout 3
+
+# Timeout before giving up for a tile to be rendered that is otherwise missing
+ModTileMissingRequestTimeout 10
+
+# If tile is out of date, don't re-render it if past this load threshold (users gets old tile)
+ModTileMaxLoadOld 2
+
+# If tile is missing, don't render it if past this load threshold (user gets 404 error)
+ModTileMaxLoadMissing 5
+
+# Socket where we connect to the rendering daemon
+ModTileRenderdSocketName /var/run/renderd/renderd.sock
+
+##
+## Options controlling the cache proxy expiry headers. All values are in seconds.
+##
+## Caching is both important to reduce the load and bandwidth of the server, as
+## well as reduce the load time for the user. The site loads fastest if tiles can be
+## taken from the users browser cache and no round trip through the internet is needed.
+## With minutely or hourly updates, however there is a trade-off between cacheability
+## and freshness. As one can't predict the future, these are only heuristics, that
+## need tuning.
+## If there is a known update schedule such as only using weekly planet dumps to update the db,
+## this can also be taken into account through the constant PLANET_INTERVAL in render_config.h
+## but requires a recompile of mod_tile
+
+## The values in this sample configuration are not the same as the defaults
+## that apply if the config settings are left out. The defaults are more conservative
+## and disable most of the heuristics.
+
+
+##
+## Caching is always a trade-off between being up to date and reducing server load or
+## client side latency and bandwidth requirements. Under some conditions, like poor
+## network conditions it might be more important to have good caching rather than the latest tiles.
+## Therefor the following config options allow to set a special hostheader for which the caching
+## behaviour is different to the normal heuristics
+##
+## The CacheExtended parameters overwrite all other caching parameters (including CacheDurationMax)
+## for tiles being requested via the hostname CacheExtendedHostname
+#ModTileCacheExtendedHostname cache.tile.openstreetmap.org
+#ModTileCacheExtendedDuration 2592000
+
+# Upper bound on the length a tile will be set cacheable, which takes
+# precedence over other settings of cacheing
+ModTileCacheDurationMax 604800
+
+# Sets the time tiles can be cached for that are known to by outdated and have been
+# sent to renderd to be rerendered. This should be set to a value corresponding
+# roughly to how long it will take renderd to get through its queue. There is an additional
+# fuzz factor on top of this to not have all tiles expire at the same time
+ModTileCacheDurationDirty 900
+
+# Specify the minimum time mod_tile will set the cache expiry to for fresh tiles. There
+# is an additional fuzz factor of between 0 and 3 hours on top of this.
+ModTileCacheDurationMinimum 10800
+
+# Lower zoom levels are less likely to change noticeable, so these could be cached for longer
+# without users noticing much.
+# The heuristic offers three levels of zoom, Low, Medium and High, for which different minimum
+# cacheing times can be specified.
+
+#Specify the zoom level below which Medium starts and the time in seconds for which they can be cached
+ModTileCacheDurationMediumZoom 13 86400
+
+#Specify the zoom level below which Low starts and the time in seconds for which they can be cached
+ModTileCacheDurationLowZoom 9 518400
+
+# A further heuristic to determine cacheing times is when was the last time a tile has changed.
+# If it hasn't changed for a while, it is less likely to change in the immediate future, so the
+# tiles can be cached for longer.
+# For example, if the factor is 0.20 and the tile hasn't changed in the last 5 days, it can be cached
+# for up to one day without having to re-validate.
+ModTileCacheLastModifiedFactor 0.20
+
+## Tile Throttling
+## Tile scrappers can often download large numbers of tiles and overly staining tileserver resources
+## mod_tile therefore offers the ability to automatically throttle requests from ip addresses that have
+## requested a lot of tiles.
+## The mechanism uses a token bucket approach to shape traffic. I.e. there is an initial pool of n tiles
+## per ip that can be requested arbitrarily fast. After that this pool gets filled up at a constant rate
+## The algorithm has to metrics. One based on overall tiles served to an ip address and a second one based on
+## the number of requests to renderd / tirex to render a new tile.
+
+## Overall enable or disable tile throttling
+ModTileEnableTileThrottling Off
+## Parameters (poolsize in tiles and topup rate in tiles per second) for throttling tile serving.
+ModTileThrottlingTiles 10000 1
+## Parameters (poolsize in tiles and topup rate in tiles per second) for throttling render requests.
+ModTileThrottlingRenders 128 0.2