1 # DO NOT EDIT - This file is being maintained by Chef
3 <% [80, 443].each do |port| -%>
4 <VirtualHost *:<%= port %>>
6 # Basic server configuration
8 ServerName <%= node[:fqdn] %>
9 ServerAlias api.openstreetmap.org www.openstreetmap.org
10 ServerAdmin webmaster@openstreetmap.org
22 LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %Ts" combined_with_time
23 CustomLog /var/log/apache2/access.log combined_with_time
24 ErrorLog /var/log/apache2/error.log
27 # Turn on various features
33 # Block troublesome GPX data scrapping
35 RewriteCond %{REQUEST_METHOD} HEAD
36 RewriteRule ^/trace/\d+/data - [F,L]
41 RewriteCond %{HTTP_USER_AGENT} tilesAtHome
45 # Block requests for the old 404 map tile
47 RewriteRule ^/openlayers/img/404.png$ - [G,L]
50 # Block attempts to access old API versions
52 RewriteRule ^/api/0.[12345]/ - [G,L]
55 # Block JOSM revisions 1722-1727 as they have a serious bug that causes
56 # lat/lon to be swapped (http://josm.openstreetmap.de/ticket/2804)
58 RewriteCond %{HTTP_USER_AGENT} "^JOSM/[0-9]+\.[0-9]+ \(172[234567]\)"
62 # Block a changeset that seems to lock things up
64 RewriteRule ^/api/0.6/changeset/6823497/download$ - [F,L]
67 # Force special MIME type for crossdomain.xml files
69 <Files crossdomain.xml>
70 ForceType text/x-cross-domain-policy
74 # Set expiry for assets
77 Header unset Last-Modified
81 ExpiresDefault "access plus 1 year"
85 # Set expiry for attachments
87 <Location /attachments/>
88 Header unset Last-Modified
92 ExpiresDefault "access plus 1 year"
96 # Set expiry for other static content
98 <Location /export/embed.html>
99 ExpiresDefault "access plus 7 days"
102 ExpiresDefault "access plus 10 years"
104 <Location /javascripts/>
105 ExpiresDefault "access plus 10 years"
107 <Location /openlayers/>
108 ExpiresDefault "access plus 7 days"
110 <Location /stylesheets/>
111 ExpiresDefault "access plus 10 years"
115 # Set expiry for Potlatch 1
117 <Location /potlatch/>
118 ExpiresDefault "access plus 7 days"
122 # Set expiry for Potlatch 2
124 <Location /potlatch2/>
125 ExpiresByType application/x-shockwave-flash "access plus 1 day"
126 ExpiresByType application/xml "access plus 1 day"
127 ExpiresByType text/css "access plus 1 day"
128 ExpiresByType image/png "access plus 7 days"
134 DocumentRoot <%= node[:web][:base_directory] %>/rails/public
136 PassengerMinInstances 10
137 PassengerMaxRequests 5000
138 PassengerPreStart http://www.openstreetmap.org/
139 Alias /favicon.ico <%= node[:web][:base_directory] %>/rails/app/assets/images/favicon.ico
140 Alias /openlayers <%= node[:web][:base_directory] %>/rails/vendor/assets/openlayers
141 Alias /stats /store/rails/stats
142 Alias /user/image /store/rails/user/image
143 Alias /attachments /store/rails/attachments
146 # Preserve the host name when forwarding to the proxy
151 # Set a long timeout - changeset uploads can take a long time
156 # Allow all proxy requests
163 # Pass some other API calls to the backends via a load balancer
165 ProxyPass /api/0.6/map balancer://backend/api/0.6/map
166 ProxyPass /api/0.6/tracepoints balancer://backend/api/0.6/tracepoints
167 ProxyPass /api/0.6/amf/read balancer://backend/api/0.6/amf/read
168 ProxyPass /api/0.6/swf/trackpoints balancer://backend/api/0.6/swf/trackpoints
169 ProxyPassMatch ^(/api/0\.6/changeset/[0-9]+/(upload|download))$ balancer://backend$1
170 ProxyPassMatch ^(/api/0\.6/(node|way|relation)/[0-9]+)$ balancer://backend$1
171 ProxyPassMatch ^(/api/0\.6/(node|way|relation)/[0-9]+/(full|history|search|ways))$ balancer://backend$1
172 ProxyPass /api/0.6/nodes balancer://backend/api/0.6/nodes
173 ProxyPass /api/0.6/ways balancer://backend/api/0.6/ways
174 ProxyPass /api/0.6/relations balancer://backend/api/0.6/relations
175 ProxyPassMatch ^(/trace/[0-9]+/data(|/|.xml))$ balancer://backend$1
178 # Redirect trac and wiki requests to the right places
180 RedirectPermanent /trac/ http://trac.openstreetmap.org/
181 RedirectPermanent /wiki/ http://wiki.openstreetmap.org/
184 # Redirect requests for various images to the right place
186 RedirectPermanent /images/osm_logo.png http://www.openstreetmap.org/assets/osm_logo.png
187 RedirectPermanent /images/cc_button.png http://www.openstreetmap.org/assets/cc_button.png
190 # Define a load balancer for the backends
192 <Proxy balancer://backend>
193 ProxySet lbmethod=bybusyness
194 BalancerMember http://rails1
195 BalancerMember http://rails2
196 BalancerMember http://rails3
201 # Redirect requests which should be secure to https
203 RewriteCond %{REQUEST_URI} ^/login(\.html)?$ [OR]
204 RewriteCond %{REQUEST_URI} ^/user/(new|create-account\.html)$ [OR]
205 RewriteCond %{REQUEST_URI} ^/user/terms$ [OR]
206 RewriteCond %{REQUEST_URI} ^/user/save$ [OR]
207 RewriteCond %{REQUEST_URI} ^/user/([^/]+)/account$ [OR]
208 RewriteCond %{REQUEST_URI} ^/user/reset-password$
209 RewriteRule ^(.*)$ https://www.openstreetmap.org$1 [L,NE,R=permanent]
212 # Redirect api requests made to www.osm.org to api.osm.org
214 # RewriteCond %{HTTP_HOST} =www.openstreetmap.org
215 # RewriteRule ^/api/(.*)$ http://api.openstreetmap.org/api/$1 [L,NE,R=permanent]
218 # Redirect non-api requests made to api.osm.org to www.osm.org
220 RewriteCond %{HTTP_HOST} =api.openstreetmap.org
221 RewriteCond %{REQUEST_URI} !^/api/
222 RewriteRule ^(.*)$ http://www.openstreetmap.org$1 [L,NE,R=permanent]
223 <% elsif port == 443 -%>
226 # Redirect requests which don't work over https to http
228 RewriteCond %{REQUEST_URI} ^/edit$
229 RewriteRule ^(.*)$ http://www.openstreetmap.org$1 [L,NE,R=permanent]
232 # Redirect api requests made to www.osm.org to api.osm.org
234 # RewriteCond %{HTTP_HOST} =www.openstreetmap.org
235 # RewriteRule ^/api/(.*)$ https://api.openstreetmap.org/api/$1 [L,NE,R=permanent]
238 # Redirect non-api requests made to api.osm.org to www.osm.org
240 RewriteCond %{HTTP_HOST} =api.openstreetmap.org
241 RewriteCond %{REQUEST_URI} !^/api/
242 RewriteRule ^(.*)$ https://www.openstreetmap.org$1 [L,NE,R=permanent]
248 ServerName openstreetmap.org
249 ServerAlias maps.openstreetmap.org mapz.openstreetmap.org
250 ServerAlias openstreetmap.com www.openstreetmap.com
251 ServerAlias maps.openstreetmap.com mapz.openstreetmap.com
252 ServerAlias openstreetmap.net www.openstreetmap.net
253 ServerAlias maps.openstreetmap.net mapz.openstreetmap.net
254 ServerAlias openstreetmap.ca www.openstreetmap.ca
255 ServerAlias maps.openstreetmap.ca mapz.openstreetmap.ca
256 ServerAlias openstreetmap.eu www.openstreetmap.eu
257 ServerAlias maps.openstreetmap.eu mapz.openstreetmap.eu
258 ServerAlias openstreetmap.pro www.openstreetmap.pro
259 ServerAlias maps.openstreetmap.pro mapz.openstreetmap.pro
260 ServerAlias openstreetmaps.org www.openstreetmaps.org
261 ServerAlias maps.openstreetmaps.org mapz.openstreetmaps.org
262 ServerAlias osm.org www.osm.org
263 ServerAlias maps.osm.org mapz.osm.org
264 ServerAlias openmaps.org www.openmaps.org
265 ServerAlias maps.openmaps.org mapz.openmaps.org
266 ServerAlias openstreetmap.io www.openstreetmap.io
267 ServerAlias maps.openstreetmap.io mapz.openstreetmap.io
268 ServerAlias osm.io www.osm.io
269 ServerAlias maps.osm.io mapz.osm.io
270 ServerAlias openworldmap.org www.openworldmap.org
271 ServerAlias maps.openworldmap.org mapz.openworldmap.org
272 ServerAlias freeosm.org www.freeosm.org
273 ServerAlias maps.freeosm.org mapz.freeosm.org
274 ServerAlias open-maps.org www.open-maps.org
275 ServerAlias maps.open-maps.org mapz.open-maps.org
276 ServerAlias open-maps.com www.open-maps.com
277 ServerAlias maps.open-maps.com mapz.open-maps.com
280 ServerAlias openstreetmap.pm www.openstreetmap.pm
282 RedirectPermanent / http://www.openstreetmap.org/
286 ServerName openstreetmap.org
287 ServerAlias maps.openstreetmap.org mapz.openstreetmap.org
291 RedirectPermanent / https://www.openstreetmap.org/
295 ServerName openstreetmap.org.uk
296 ServerAlias www.openstreetmap.org.uk
297 ServerAlias openstreetmap.co.uk
298 ServerAlias www.openstreetmap.co.uk
300 RedirectPermanent /events.ics http://calendar.openstreetmap.org.uk/events.ics
301 RedirectPermanent / http://www.openstreetmap.org/