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 other heavy duty API calls to the bulkapi backends via a load balancer
165 ProxyPass /api/0.6/map balancer://bulkapi/api/0.6/map
166 ProxyPass /api/0.6/tracepoints balancer://bulkapi/api/0.6/tracepoints
167 ProxyPass /api/0.6/amf/read balancer://bulkapi/api/0.6/amf/read
168 ProxyPass /api/0.6/swf/trackpoints balancer://bulkapi/api/0.6/swf/trackpoints
169 ProxyPassMatch ^(/api/0.6/changeset/[0-9]+/(upload|download))$ balancer://bulkapi$1
170 ProxyPassMatch ^(/api/0.6/.*/(full|history|search|ways))$ balancer://bulkapi$1
171 ProxyPass /api/0.6/nodes balancer://bulkapi/api/0.6/nodes
172 ProxyPass /api/0.6/ways balancer://bulkapi/api/0.6/ways
173 ProxyPassMatch ^(/trace/[0-9]+/data(|/|.xml))$ balancer://bulkapi$1
176 # Redirect trac and wiki requests to the right places
178 RedirectPermanent /trac/ http://trac.openstreetmap.org/
179 RedirectPermanent /wiki/ http://wiki.openstreetmap.org/
182 # Redirect requests for various images to the right place
184 RedirectPermanent /images/osm_logo.png http://www.openstreetmap.org/assets/osm_logo.png
185 RedirectPermanent /images/cc_button.png http://www.openstreetmap.org/assets/cc_button.png
188 # Define a load balancer for the bulkapi backends
190 <Proxy balancer://bulkapi>
191 ProxySet lbmethod=bybusyness
192 BalancerMember http://rails1
193 BalancerMember http://rails2
194 BalancerMember http://rails3
199 # Redirect requests which should be secure to the SSL site
201 RewriteCond %{REQUEST_URI} ^/login(\.html)?$ [OR]
202 RewriteCond %{REQUEST_URI} ^/user/(new|create-account\.html)$ [OR]
203 RewriteCond %{REQUEST_URI} ^/user/terms$ [OR]
204 RewriteCond %{REQUEST_URI} ^/user/save$ [OR]
205 RewriteCond %{REQUEST_URI} ^/user/([^/]+)/account$ [OR]
206 RewriteCond %{REQUEST_URI} ^/user/reset-password$
207 RewriteRule ^(.*)$ https://www.openstreetmap.org$1 [L,NE,R=permanent]
210 # Redirect api requests made to www.osm.org to api.osm.org
212 # RewriteCond %{HTTP_HOST} =www.openstreetmap.org
213 # RewriteRule ^/api/(.*)$ http://api.openstreetmap.org/api/$1 [L,NE,R=permanent]
216 # Redirect non-api requests made to api.osm.org to www.osm.org
218 RewriteCond %{HTTP_HOST} =api.openstreetmap.org
219 RewriteCond %{REQUEST_URI} !^/api/
220 RewriteRule ^(.*)$ http://www.openstreetmap.org$1 [L,NE,R=permanent]
221 <% elsif port == 443 -%>
224 # Redirect api requests to api.osm.org over http
226 RewriteRule ^/api/(.*)$ http://api.openstreetmap.org/api/$1 [L,NE,R=permanent]
229 # Redirect requests which do not need to be secure over http
231 RewriteCond %{REQUEST_URI} !^/login(.html)?$
232 RewriteCond %{REQUEST_URI} !^/user/(new|create-account.html)$
233 RewriteCond %{REQUEST_URI} !^/user/terms$
234 RewriteCond %{REQUEST_URI} !^/user/save$
235 RewriteCond %{REQUEST_URI} !^/user/go_public$
236 RewriteCond %{REQUEST_URI} !^/user/([^/]+)/account$
237 RewriteCond %{REQUEST_URI} !^/user/reset-password$
238 RewriteCond %{REQUEST_URI} !^/preview/
239 RewriteCond %{REQUEST_URI} !^/assets/
240 RewriteCond %{REQUEST_URI} !^/javascripts/
241 RewriteCond %{REQUEST_URI} !^/images/
242 RewriteCond %{REQUEST_URI} !^/stylesheets/
243 RewriteCond %{REQUEST_URI} !^/openlayers/
244 RewriteRule ^(.*)$ http://www.openstreetmap.org$1 [L,NE,R=permanent]
250 ServerName openstreetmap.org
251 ServerAlias maps.openstreetmap.org mapz.openstreetmap.org
252 ServerAlias openstreetmap.com www.openstreetmap.com
253 ServerAlias maps.openstreetmap.com mapz.openstreetmap.com
254 ServerAlias openstreetmap.net www.openstreetmap.net
255 ServerAlias maps.openstreetmap.net mapz.openstreetmap.net
256 ServerAlias openstreetmaps.org www.openstreetmaps.org
257 ServerAlias maps.openstreetmaps.org mapz.openstreetmaps.org
258 ServerAlias osm.org www.osm.org
259 ServerAlias maps.osm.org mapz.osm.org
260 ServerAlias openmaps.org www.openmaps.org
261 ServerAlias maps.openmaps.org mapz.openmaps.org
262 ServerAlias openworldmap.org www.openworldmap.org
263 ServerAlias maps.openworldmap.org mapz.openworldmap.org
264 ServerAlias freeosm.org www.freeosm.org
265 ServerAlias maps.freeosm.org mapz.freeosm.org
267 RedirectPermanent / http://www.openstreetmap.org/
271 ServerName openstreetmap.org.uk
272 ServerAlias www.openstreetmap.org.uk
273 ServerAlias openstreetmap.co.uk
274 ServerAlias www.openstreetmap.co.uk
276 RedirectPermanent /events.ics http://openstreetmap.org.uk/events.ics
277 RedirectPermanent / http://www.openstreetmap.org/