diff --git a/.github/actions/apache/configure/action.yml b/.github/actions/apache/configure/action.yml
index 88f2abe..bbc17d3 100644
--- a/.github/actions/apache/configure/action.yml
+++ b/.github/actions/apache/configure/action.yml
@@ -24,9 +24,6 @@ runs:
ln --symbolic \
"${PWD}/etc/renderd/renderd.conf.examples" \
/etc/renderd.conf
- ln --symbolic \
- "${PWD}/etc/apache2/renderd.conf" \
- /etc/httpd/conf.d/renderd.conf
ln --symbolic \
"${PWD}/etc/apache2/renderd-example-map.conf" \
/etc/httpd/conf.d/renderd-example-map.conf
@@ -50,9 +47,6 @@ runs:
ln --symbolic \
"${PWD}/etc/renderd/renderd.conf.examples" \
/etc/renderd.conf
- ln --symbolic \
- "${PWD}/etc/apache2/renderd.conf" \
- /etc/apache2/conf-enabled/renderd.conf
ln --symbolic \
"${PWD}/etc/apache2/renderd-example-map.conf" \
/etc/apache2/conf-enabled/renderd-example-map.conf
@@ -82,9 +76,6 @@ runs:
ln --symbolic \
"${PWD}/etc/renderd/renderd.conf.examples" \
/etc/renderd.conf
- ln --symbolic \
- "${PWD}/etc/apache2/renderd.conf" \
- /etc/httpd/conf.d/renderd.conf
ln --symbolic \
"${PWD}/etc/apache2/renderd-example-map.conf" \
/etc/httpd/conf.d/renderd-example-map.conf
@@ -108,9 +99,6 @@ runs:
ln --symbolic \
"${PWD}/etc/renderd/renderd.conf.examples" \
/etc/renderd.conf
- ln --symbolic \
- "${PWD}/etc/apache2/renderd.conf" \
- /etc/apache2/conf-enabled/renderd.conf
ln --symbolic \
"${PWD}/etc/apache2/renderd-example-map.conf" \
/etc/apache2/conf-enabled/renderd-example-map.conf
diff --git a/.github/actions/test/action.yml b/.github/actions/test/action.yml
index eb2e21b..bafb01e 100644
--- a/.github/actions/test/action.yml
+++ b/.github/actions/test/action.yml
@@ -3,7 +3,7 @@ inputs:
tile_url:
description: Tile URL for testing `mod_tile` module
required: false
- default: http://localhost/renderd-example/tiles/9/297/191.png
+ default: http://localhost:8081/tiles/renderd-example/9/297/191.png
tile_sha224sum:
description: Tile sha224sum for testing `mod_tile` module
required: false
diff --git a/etc/apache2/renderd-example-map.conf b/etc/apache2/renderd-example-map.conf
index 873470f..0d5b3d3 100644
--- a/etc/apache2/renderd-example-map.conf
+++ b/etc/apache2/renderd-example-map.conf
@@ -1,8 +1,143 @@
-Alias /renderd-example-map /var/www/example-map
+Alias /renderd-example-map /usr/share/renderd/example-map
-
+
Options +FollowSymLinks
AllowOverride All
order allow,deny
allow from all
+
+Listen 8081
+
+
+ ModTileTileDir /var/cache/renderd/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 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
+
+ # 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 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 /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 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 renderd / 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
+
+
diff --git a/etc/apache2/renderd.conf b/etc/apache2/renderd.conf
deleted file mode 100644
index c26d070..0000000
--- a/etc/apache2/renderd.conf
+++ /dev/null
@@ -1,137 +0,0 @@
-
-
- Options Indexes FollowSymLinks MultiViews
- AllowOverride None
- Require all granted
-
- ModTileTileDir /var/cache/renderd/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 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
-
- # 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 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 /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 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 renderd / 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
-
-
diff --git a/etc/renderd/renderd.conf.examples b/etc/renderd/renderd.conf.examples
index 5128732..651873b 100644
--- a/etc/renderd/renderd.conf.examples
+++ b/etc/renderd/renderd.conf.examples
@@ -30,7 +30,7 @@ font_dir_recurse=true
; EXAMPLES FOR LAYER CONFIGURATION OPTIONS
[example-map]
-URI=/renderd-example/tiles/
+URI=/tiles/renderd-example
XML=/var/www/example-map/mapnik.xml
;[style1]
diff --git a/utils/example-map/index.html b/utils/example-map/index.html
index ee48d05..1a89bfb 100644
--- a/utils/example-map/index.html
+++ b/utils/example-map/index.html
@@ -14,7 +14,7 @@