[Git][debian-gis-team/tirex][master] Revisit configuration.

ǝɹʇʇɐʃǝ◖ xıʃǝɟ (@xamanu) gitlab at salsa.debian.org
Sat Aug 21 12:24:04 BST 2021



ǝɹʇʇɐʃǝ◖ xıʃǝɟ pushed to branch master at Debian GIS Project / tirex


Commits:
a74b670a by Felix Delattre at 2021-08-20T19:17:50+00:00
Revisit configuration.

- - - - -


5 changed files:

- debian/etc/apache2/tirex.conf
- debian/etc/tirex/renderer/mapnik.conf
- debian/tirex.dirs
- debian/tirex.install
- debian/tirex.postinst


Changes:

=====================================
debian/etc/apache2/tirex.conf
=====================================
@@ -1,23 +1,143 @@
-Alias /mod_tile /var/cache/tirex/tiles
-
 <Directory /var/cache/tirex/tiles>
 
     Options Indexes FollowSymLinks MultiViews
-    AllowOverride None    
+    AllowOverride None
     Require all granted
 
-    ModTiletirexSocketName /run/tirex/tirex.sock
-    ModTileTileDir         /var/cache/tirex/tiles
-    ModTileRequestTimeout        0
+    ModTileTileDir /var/cache/tirex/tiles
+
+    # 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 tirex
+    # 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
+    AddTileConfig /tirex-example tirex-example
+
+    #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 /route-to-file
+
+    # Specify if mod_tile should keep tile delivery stats, which can be accessed from the URL /mod_tile
+    # The default is On. As keeping stats needs to take a lock, this might have some performance impact,
+    # but for nearly all intents and purposes this should be negligable and so it is safe to keep this turned on.
+    ModTileEnableStats On
+
+    # Turns on bulk mode. In bulk mode, mod_tile does not request any dirty tiles to be rerendered. Missing tiles
+    # are always requested in the lowest priority. The default is Off.
+    ModTileBulkMode Off
+
+    # Timeout before giving up for a tile to be rendered
+    ModTileRequestTimeout 0
+
+    # Timeout before giving up for a tile to be rendered that is otherwise missing
     ModTileMissingRequestTimeout 60
-    <Location "/mod_tile">
-        # This is used by munin graphs.
-        # Only allow local connections
-        Require local
-    </Location>
+
+    # 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 /run/tirex/modtile.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 tirex to be rerendered. This should be set to a value corresponding
+    # roughly to how long it will take tirex 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 scrapers can often download large numbers of tiles and overly strain 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 two metrics. One based on overall tiles served to an ip address and a second one based on
+    # the number of requests to tirex / tirex to render a new tile.
+
+    # Overall enable or disable tile throttling
+    ModTileEnableTileThrottling Off
+
+    # Specify if you want to use the connecting IP for throtteling, or use the X-Forwarded-For header to determin the
+    # 1 - use the client IP address, i.e. the first entry in the X-Forwarded-For list. This works through a cascade of proxies.
+    #     However, as the X-Forwarded-For is written by the client this is open to manipulation and can be used to circumvent the throttling
+    # 2 - use the last specified IP in the X-Forwarded-For list. If you know all requests come through a reverse proxy
+    #     that adds an X-Forwarded-For header, you can trust this IP to be the IP the reverse proxy saw for the request
+    ModTileEnableTileThrottlingXForward 0
+
+    # 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
+
     # Block internal commands
     RedirectMatch 404 /tiles/.*/dirty
     RedirectMatch 404 /tiles/.*/status
-    AddTileConfig /etc/tirex.conf
 
 </Directory>


=====================================
debian/etc/tirex/renderer/mapnik.conf
=====================================
@@ -44,6 +44,6 @@ fontdir=/usr/share/fonts/truetype
 
 #  Set this to 1 if you want fonts loaded recursively from directories
 #  inside the mapnik_fontdir directory. Defaults to 0.
-#fontdir_recurse=0
+fontdir_recurse=1
 
 #-- THE END ------------------------------------------------------------------


=====================================
debian/tirex.dirs
=====================================
@@ -1,2 +1,3 @@
 var/cache/tirex/tiles
+var/cache/tirex/tiles/test
 var/cache/tirex/stats


=====================================
debian/tirex.install
=====================================
@@ -28,5 +28,4 @@ debian/tirex-master.service                      lib/systemd/system/
 debian/tirex-backend-manager.service             lib/systemd/system/
 usr/lib/tirex/backends/mapnik                    usr/libexec/tirex/backends
 usr/lib/tirex/backends/test                      usr/libexec/tirex/backends
-debian/tirex-master.service                      lib/systemd/system/
-debian/tirex-backend-manager.service             lib/systemd/system/
+


=====================================
debian/tirex.postinst
=====================================
@@ -22,4 +22,6 @@ case "$1" in
 	;;
 esac
 
+chown _tirex:_tirex /var/cache/tirex/tiles/test
+
 #DEBHELPER#



View it on GitLab: https://salsa.debian.org/debian-gis-team/tirex/-/commit/a74b670a948db9c65b56bed07a173c44d4d5c83a

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/tirex/-/commit/a74b670a948db9c65b56bed07a173c44d4d5c83a
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20210821/f95697fd/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list