X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/4c006d46acaae9dfa6d118b6367fe13dff5f53bd..39d54ea1c7d8621ea4b8a7c1f31dafeb023c91b9:/cookbooks/planet/templates/default/apache.erb diff --git a/cookbooks/planet/templates/default/apache.erb b/cookbooks/planet/templates/default/apache.erb index 8790c8032..02332da7a 100644 --- a/cookbooks/planet/templates/default/apache.erb +++ b/cookbooks/planet/templates/default/apache.erb @@ -1,21 +1,16 @@ # DO NOT EDIT - This file is being maintained by Chef -<% [80, 443].each do |port| -%> - -> + + ServerName planet.openstreetmap.org ServerAlias planet.osm.org ServerAdmin webmaster@openstreetmap.org -<% if port == 443 -%> + CustomLog /var/log/apache2/planet.openstreetmap.org-access.log combined + ErrorLog /var/log/apache2/planet.openstreetmap.org-error.log + SSLEngine on SSLCertificateFile /etc/ssl/certs/planet.openstreetmap.org.pem SSLCertificateKeyFile /etc/ssl/private/planet.openstreetmap.org.key -<% else -%> - RedirectPermanent /.well-known/acme-challenge/ http://acme.openstreetmap.org/.well-known/acme-challenge/ -<% end -%> - - CustomLog /var/log/apache2/planet.openstreetmap.org-access.log combined - ErrorLog /var/log/apache2/planet.openstreetmap.org-error.log DocumentRoot /store/planet @@ -31,36 +26,82 @@ Require all granted - ProxyPass /replication/streaming http://127.0.0.1:8080 - - - Require all granted - - Redirect /pbf-experimental/ /pbf/ - - Header set Access-Control-Allow-Origin "*" - + + Header set Access-Control-Allow-Origin "*" + RewriteEngine on RewriteMap latestplanet prg:/usr/local/bin/apache-latest-planet-filename + RewriteMap ip2region prg:/usr/local/bin/apache-s3-ip2region + + # Direct, no redirect for the following + RewriteCond %{REMOTE_ADDR} ^(127\.|10\.|192\.168\.) + RewriteCond %{QUERY_STRING} nomirror + RewriteRule .* - [L] + + # Set ENV:REGION to AWS region closest to the user + RewriteRule .* - [E=REGION:${ip2region:%{REMOTE_ADDR}|eu-central-1}] + + # Use RewriteMap latestplanet to redirect -latest symlink to resolved file eg: planet-latest.osm.bz2 -> 2023/planet-230918.osm.bz2 + RewriteRule ^(/planet/planet\-latest\.osm\.bz2(\.torrent)?)$ ${latestplanet:$1} [R,L] + RewriteRule ^(/planet/full\-history/history\-latest\.osm\.bz2(\.torrent)?)$ ${latestplanet:$1} [R,L] + RewriteRule ^(/planet/changesets\-latest\.osm\.bz2(\.torrent)?)$ ${latestplanet:$1} [R,L] + RewriteRule ^(/planet/discussions\-latest\.osm\.bz2(\.torrent)?)$ ${latestplanet:$1} [R,L] - #Direct, no redirect for the following - RewriteCond %{REMOTE_ADDR} ^193\.63\. [OR] - RewriteCond %{REMOTE_ADDR} ^127\. [OR] - RewriteCond %{REMOTE_ADDR} ^10\. [OR] - RewriteCond %{REMOTE_ADDR} ^193\.1\.219\.88 [OR] - RewriteCond %{REMOTE_ADDR} ^193\.1\.193\.64 [OR] - RewriteCond %{REMOTE_ADDR} ^146\.169\. [OR] - RewriteCond %{REMOTE_ADDR} ^129\.31\. [OR] - RewriteCond %{REMOTE_ADDR} ^193\.60\. [OR] - RewriteCond %{REMOTE_ADDR} ^193\.61\. [OR] - RewriteCond %{REMOTE_ADDR} ^193\.62\. [OR] - RewriteCond %{REMOTE_ADDR} ^193\.63\. [OR] - RewriteCond %{QUERY_STRING} nomirror - RewriteRule .* - [L] - - RewriteRule ^(/planet/planet\-latest\.osm\.bz2)$ ${latestplanet:$1} [R,L] + RewriteRule ^(/pbf/planet\-latest\.osm\.pbf(\.torrent)?)$ ${latestplanet:$1} [R,L] + RewriteRule ^(/pbf/full\-history/history\-latest\.osm\.pbf(\.torrent)?)$ ${latestplanet:$1} [R,L] + + RewriteRule ^(/cc\-by\-sa/pbf/planet\-latest\.osm\.pbf)$ ${latestplanet:$1} [R,L] + RewriteRule ^(/cc\-by\-sa/planet\-latest\.osm\.bz2)$ ${latestplanet:$1} [R,L] + RewriteRule ^(/cc\-by\-sa/changesets\-latest\.osm\.bz2)$ ${latestplanet:$1} [R,L] + RewriteRule ^(/cc\-by\-sa/relations\-latest\.osm\.bz2)$ ${latestplanet:$1} [R,L] + + RewriteRule ^(/notes/planet\-notes\-latest\.osn\.bz2)$ ${latestplanet:$1} [R,L] + + # Block an abusive fake user agent + RewriteCond %{HTTP_USER_AGENT} "=Mozilla/5.0 (Linux; Android) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36" + RewriteRule /.*$ - [F,L] + + <% start_year = 2008 %> + <% current_year = Time.now.year %> + <% (start_year..current_year).each do |year| %> + <% year_two = sprintf('%02d', year % 100) %> + <% if year == current_year %> + RewriteRule ^/pbf/(planet\-<%= year_two %>[0-1][0-9][0-3][0-9]\.osm\.pbf(\.torrent|\.md5)?)$ https://osm-planet-eu-central-1.s3.dualstack.eu-central-1.amazonaws.com/planet/pbf/<%= year %>/$1 [R,L] + RewriteRule ^/pbf/full\-history/(history\-<%= year_two %>[0-1][0-9][0-3][0-9]\.osm\.pbf(\.torrent|\.md5)?)$ https://osm-planet-eu-central-1.s3.dualstack.eu-central-1.amazonaws.com/planet-full-history/pbf/<%= year %>/$1 [R,L] + RewriteRule ^/planet/<%= year %>/(planet\-<%= year_two %>[0-1][0-9][0-3][0-9]\.osm\.bz2(\.torrent|\.md5)?)$ https://osm-planet-eu-central-1.s3.dualstack.eu-central-1.amazonaws.com/planet/osm/<%= year %>/$1 [R,L] + RewriteRule ^/planet/<%= year %>/(changesets\-<%= year_two %>[0-1][0-9][0-3][0-9]\.osm\.bz2(\.torrent|\.md5)?)$ https://osm-planet-eu-central-1.s3.dualstack.eu-central-1.amazonaws.com/changesets/osm/<%= year %>/$1 [R,L] + RewriteRule ^/planet/<%= year %>/(discussions\-<%= year_two %>[0-1][0-9][0-3][0-9]\.osm\.bz2(\.torrent|\.md5)?)$ https://osm-planet-eu-central-1.s3.dualstack.eu-central-1.amazonaws.com/discussions/osm/<%= year %>/$1 [R,L] + RewriteRule ^/planet/full\-history/<%= year %>/(history\-<%= year_two %>[0-1][0-9][0-3][0-9]\.osm\.bz2(\.torrent|\.md5)?)$ https://osm-planet-eu-central-1.s3.dualstack.eu-central-1.amazonaws.com/planet-full-history/osm/<%= year %>/$1 [R,L] + RewriteRule ^/tile_logs/(hosts\-<%= year %>\-[01][0-9]\-[0-3][0-9]\.csv) https://osm-planet-eu-central-1.s3.dualstack.eu-central-1.amazonaws.com/tile_logs/standard_layer/hosts/<%= year %>/$1 [R,L] + RewriteRule ^/tile_logs/(countries\-<%= year %>\-[01][0-9]\-[0-3][0-9]\.csv) https://osm-planet-eu-central-1.s3.dualstack.eu-central-1.amazonaws.com/tile_logs/standard_layer/countries/<%= year %>/$1 [R,L] + RewriteRule ^/tile_logs/(apps\-<%= year %>\-[01][0-9]\-[0-3][0-9]\.csv) https://osm-planet-eu-central-1.s3.dualstack.eu-central-1.amazonaws.com/tile_logs/standard_layer/apps/<%= year %>/$1 [R,L] + RewriteRule ^/tile_logs/(tiles\-<%= year %>\-[01][0-9]\-[0-3][0-9]\.txt\.xz) https://osm-planet-eu-central-1.s3.dualstack.eu-central-1.amazonaws.com/tile_logs/standard_layer/tiles/<%= year %>/$1 [R,L] + <% else %> + RewriteRule ^/pbf/(planet\-<%= year_two %>[0-1][0-9][0-3][0-9]\.osm\.pbf(\.torrent|\.md5)?)$ https://osm-planet-%{ENV:REGION}.s3.dualstack.%{ENV:REGION}.amazonaws.com/planet/pbf/<%= year %>/$1 [R,L] + RewriteRule ^/pbf/full\-history/(history\-<%= year_two %>[0-1][0-9][0-3][0-9]\.osm\.pbf(\.torrent|\.md5)?)$ https://osm-planet-%{ENV:REGION}.s3.dualstack.%{ENV:REGION}.amazonaws.com/planet-full-history/pbf/<%= year %>/$1 [R,L] + RewriteRule ^/planet/<%= year %>/(planet\-<%= year_two %>[0-1][0-9][0-3][0-9]\.osm\.bz2(\.torrent|\.md5)?)$ https://osm-planet-%{ENV:REGION}.s3.dualstack.%{ENV:REGION}.amazonaws.com/planet/osm/<%= year %>/$1 [R,L] + RewriteRule ^/planet/<%= year %>/(changesets\-<%= year_two %>[0-1][0-9][0-3][0-9]\.osm\.bz2(\.torrent|\.md5)?)$ https://osm-planet-%{ENV:REGION}.s3.dualstack.%{ENV:REGION}.amazonaws.com/changesets/osm/<%= year %>/$1 [R,L] + RewriteRule ^/planet/<%= year %>/(discussions\-<%= year_two %>[0-1][0-9][0-3][0-9]\.osm\.bz2(\.torrent|\.md5)?)$ https://osm-planet-%{ENV:REGION}.s3.dualstack.%{ENV:REGION}.amazonaws.com/discussions/osm/<%= year %>/$1 [R,L] + RewriteRule ^/planet/full\-history/<%= year %>/(history\-<%= year_two %>[0-1][0-9][0-3][0-9]\.osm\.bz2(\.torrent|\.md5)?)$ https://osm-planet-%{ENV:REGION}.s3.dualstack.%{ENV:REGION}.amazonaws.com/planet-full-history/osm/<%= year %>/$1 [R,L] + RewriteRule ^/tile_logs/(hosts\-<%= year %>\-[01][0-9]\-[0-3][0-9]\.csv) https://osm-planet-%{ENV:REGION}.s3.dualstack.%{ENV:REGION}.amazonaws.com/tile_logs/standard_layer/hosts/<%= year %>/$1 [R,L] + RewriteRule ^/tile_logs/(countries\-<%= year %>\-[01][0-9]\-[0-3][0-9]\.csv) https://osm-planet-%{ENV:REGION}.s3.dualstack.%{ENV:REGION}.amazonaws.com/tile_logs/standard_layer/countries/<%= year %>/$1 [R,L] + RewriteRule ^/tile_logs/(apps\-<%= year %>\-[01][0-9]\-[0-3][0-9]\.csv) https://osm-planet-%{ENV:REGION}.s3.dualstack.%{ENV:REGION}.amazonaws.com/tile_logs/standard_layer/apps/<%= year %>/$1 [R,L] + RewriteRule ^/tile_logs/(tiles\-<%= year %>\-[01][0-9]\-[0-3][0-9]\.txt\.xz) https://osm-planet-%{ENV:REGION}.s3.dualstack.%{ENV:REGION}.amazonaws.com/tile_logs/standard_layer/tiles/<%= year %>/$1 [R,L] + <% end %> + <% end %> + + + + ServerName planet.openstreetmap.org + ServerAlias planet.osm.org + ServerAdmin webmaster@openstreetmap.org + + CustomLog /var/log/apache2/planet.openstreetmap.org-access.log combined + ErrorLog /var/log/apache2/planet.openstreetmap.org-error.log + + RedirectPermanent /.well-known/acme-challenge/ http://acme.openstreetmap.org/.well-known/acme-challenge/ + RedirectPermanent / https://planet.openstreetmap.org/ -<% end -%>