# DO NOT EDIT - This file is being maintained by Chef <% [80, 443].each do |port| -%> > # # Basic server configuration # ServerName <%= node[:fqdn] %> ServerAlias api.openstreetmap.org www.openstreetmap.org ServerAdmin webmaster@openstreetmap.org <% if port == 443 -%> # # Enable SSL # SSLEngine on <% end -%> # # Setup logging # LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %Ts" combined_with_time CustomLog /var/log/apache2/access.log combined_with_time ErrorLog /var/log/apache2/error.log # # Turn on various features # ExpiresActive On RewriteEngine on # # Block troublesome GPX data scrapping # RewriteCond %{REQUEST_METHOD} HEAD RewriteRule ^/trace/\d+/data - [F,L] # # Block tilesAtHome # RewriteCond %{HTTP_USER_AGENT} tilesAtHome RewriteRule . - [F,L] # # Block requests for the old 404 map tile # RewriteRule ^/openlayers/img/404.png$ - [G,L] # # Block attempts to access old API versions # RewriteRule ^/api/0.[12345]/ - [G,L] # # Block JOSM revisions 1722-1727 as they have a serious bug that causes # lat/lon to be swapped (http://josm.openstreetmap.de/ticket/2804) # RewriteCond %{HTTP_USER_AGENT} "^JOSM/[0-9]+\.[0-9]+ \(172[234567]\)" RewriteRule . - [F,L] # # Block a changeset that seems to lock things up # RewriteRule ^/api/0.6/changeset/6823497/download$ - [F,L] # # Force special MIME type for crossdomain.xml files # ForceType text/x-cross-domain-policy # # Set expiry for assets # Header unset Last-Modified Header unset ETag FileETag None ExpiresDefault "access plus 1 year" # # Set expiry for attachments # Header unset Last-Modified Header unset ETag FileETag None ExpiresDefault "access plus 1 year" # # Set expiry for other static content # ExpiresDefault "access plus 7 days" ExpiresDefault "access plus 10 years" ExpiresDefault "access plus 10 years" ExpiresDefault "access plus 7 days" ExpiresDefault "access plus 10 years" # # Set expiry for Potlatch 1 # ExpiresDefault "access plus 7 days" # # Set expiry for Potlatch 2 # ExpiresByType application/x-shockwave-flash "access plus 1 day" ExpiresByType application/xml "access plus 1 day" ExpiresByType text/css "access plus 1 day" ExpiresByType image/png "access plus 7 days" # # Configure rails # DocumentRoot <%= node[:web][:base_directory] %>/rails/public RailsEnv production PassengerMinInstances 10 PassengerMaxRequests 5000 PassengerPreStart http://www.openstreetmap.org/ Alias /favicon.ico <%= node[:web][:base_directory] %>/rails/app/assets/images/favicon.ico Alias /openlayers <%= node[:web][:base_directory] %>/rails/vendor/assets/openlayers Alias /stats /store/rails/stats Alias /user/image /store/rails/user/image Alias /attachments /store/rails/attachments # # Preserve the host name when forwarding to the proxy # ProxyPreserveHost on # # Set a long timeout - changeset uploads can take a long time # ProxyTimeout 3600 # # Allow all proxy requests # Allow from all # # Pass other heavy duty API calls to the bulkapi backends via a load balancer # ProxyPass /api/0.6/map balancer://bulkapi/api/0.6/map ProxyPass /api/0.6/tracepoints balancer://bulkapi/api/0.6/tracepoints ProxyPass /api/0.6/amf/read balancer://bulkapi/api/0.6/amf/read ProxyPass /api/0.6/swf/trackpoints balancer://bulkapi/api/0.6/swf/trackpoints ProxyPassMatch ^(/api/0.6/changeset/[0-9]+/(upload|download))$ balancer://bulkapi$1 ProxyPassMatch ^(/api/0.6/.*/(full|history|search|ways))$ balancer://bulkapi$1 ProxyPass /api/0.6/nodes balancer://bulkapi/api/0.6/nodes ProxyPass /api/0.6/ways balancer://bulkapi/api/0.6/ways ProxyPassMatch ^(/trace/[0-9]+/data(|/|.xml))$ balancer://bulkapi$1 # # Redirect trac and wiki requests to the right places # RedirectPermanent /trac/ http://trac.openstreetmap.org/ RedirectPermanent /wiki/ http://wiki.openstreetmap.org/ # # Redirect requests for various images to the right place # RedirectPermanent /images/osm_logo.png http://www.openstreetmap.org/assets/osm_logo.png RedirectPermanent /images/cc_button.png http://www.openstreetmap.org/assets/cc_button.png # # Define a load balancer for the bulkapi backends # ProxySet lbmethod=bybusyness BalancerMember http://rails1 BalancerMember http://rails2 BalancerMember http://rails3 <% if port == 80 -%> # # Redirect requests which should be secure to the SSL site # RewriteCond %{REQUEST_URI} ^/login(\.html)?$ [OR] RewriteCond %{REQUEST_URI} ^/user/(new|create-account\.html)$ [OR] RewriteCond %{REQUEST_URI} ^/user/terms$ [OR] RewriteCond %{REQUEST_URI} ^/user/save$ [OR] RewriteCond %{REQUEST_URI} ^/user/([^/]+)/account$ [OR] RewriteCond %{REQUEST_URI} ^/user/reset-password$ RewriteRule ^(.*)$ https://www.openstreetmap.org$1 [L,NE,R=permanent] # # Redirect api requests made to www.osm.org to api.osm.org # # RewriteCond %{HTTP_HOST} =www.openstreetmap.org # RewriteRule ^/api/(.*)$ http://api.openstreetmap.org/api/$1 [L,NE,R=permanent] # # Redirect non-api requests made to api.osm.org to www.osm.org # RewriteCond %{HTTP_HOST} =api.openstreetmap.org RewriteCond %{REQUEST_URI} !^/api/ RewriteRule ^(.*)$ http://www.openstreetmap.org$1 [L,NE,R=permanent] <% elsif port == 443 -%> # # Redirect api requests to api.osm.org over http # RewriteRule ^/api/(.*)$ http://api.openstreetmap.org/api/$1 [L,NE,R=permanent] # # Redirect requests which do not need to be secure over http # RewriteCond %{REQUEST_URI} !^/login(.html)?$ RewriteCond %{REQUEST_URI} !^/user/(new|create-account.html)$ RewriteCond %{REQUEST_URI} !^/user/terms$ RewriteCond %{REQUEST_URI} !^/user/save$ RewriteCond %{REQUEST_URI} !^/user/go_public$ RewriteCond %{REQUEST_URI} !^/user/([^/]+)/account$ RewriteCond %{REQUEST_URI} !^/user/reset-password$ RewriteCond %{REQUEST_URI} !^/preview/ RewriteCond %{REQUEST_URI} !^/assets/ RewriteCond %{REQUEST_URI} !^/javascripts/ RewriteCond %{REQUEST_URI} !^/images/ RewriteCond %{REQUEST_URI} !^/stylesheets/ RewriteCond %{REQUEST_URI} !^/openlayers/ RewriteRule ^(.*)$ http://www.openstreetmap.org$1 [L,NE,R=permanent] <% end -%> <% end -%> ServerName openstreetmap.org ServerAlias maps.openstreetmap.org mapz.openstreetmap.org ServerAlias openstreetmap.com www.openstreetmap.com ServerAlias maps.openstreetmap.com mapz.openstreetmap.com ServerAlias openstreetmap.net www.openstreetmap.net ServerAlias maps.openstreetmap.net mapz.openstreetmap.net ServerAlias openstreetmaps.org www.openstreetmaps.org ServerAlias maps.openstreetmaps.org mapz.openstreetmaps.org ServerAlias osm.org www.osm.org ServerAlias maps.osm.org mapz.osm.org ServerAlias openmaps.org www.openmaps.org ServerAlias maps.openmaps.org mapz.openmaps.org ServerAlias openworldmap.org www.openworldmap.org ServerAlias maps.openworldmap.org mapz.openworldmap.org ServerAlias freeosm.org www.freeosm.org ServerAlias maps.freeosm.org mapz.freeosm.org RedirectPermanent / http://www.openstreetmap.org/ ServerName openstreetmap.org.uk ServerAlias www.openstreetmap.org.uk ServerAlias openstreetmap.co.uk ServerAlias www.openstreetmap.co.uk RedirectPermanent /events.ics http://calendar.openstreetmap.org.uk/events.ics RedirectPermanent / http://www.openstreetmap.org/