]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/planet/templates/default/apache.erb
Block faked Chrome 34 user agent from planet
[chef.git] / cookbooks / planet / templates / default / apache.erb
index 8790c80328d18d463299542c5545f61ac127dadb..f8bf0dc7eb0533499295bb79ca081e45d0c56a8f 100644 (file)
@@ -1,21 +1,16 @@
 # DO NOT EDIT - This file is being maintained by Chef
-<% [80, 443].each do |port| -%>
-   
-<VirtualHost *:<%= port %>>
+
+<VirtualHost *:443>
         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
 
 
         Redirect /pbf-experimental/    /pbf/
 
-       <IfModule mod_headers.c>
-               Header set Access-Control-Allow-Origin "*"
-       </IfModule>
+        <IfModule mod_headers.c>
+                Header set Access-Control-Allow-Origin "*"
+        </IfModule>
 
         RewriteEngine on
         RewriteMap latestplanet prg:/usr/local/bin/apache-latest-planet-filename
 
         #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
+        RewriteCond %{REMOTE_ADDR}  ^127\.                          [OR]
+        RewriteCond %{REMOTE_ADDR}  ^10\.                             [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 ^(/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]
+
+        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]
+
+        # 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]
+
+        # Temporary download rate limit due to upstream fibre connection issues. - 13 Jan 2020
+        <FilesMatch ".+\.(7z|bz2|gz|pbf|tgz|xz)$">
+          SetOutputFilter RATE_LIMIT
+          SetEnv rate-limit 4096
+          SetEnv rate-initial-burst 8192
+        </FilesMatch>
+</VirtualHost>
+
+<VirtualHost *:80>
+        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/
 </VirtualHost>
-<% end -%>