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
23 LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %Ts" combined_with_time
24 CustomLog /var/log/apache2/access.log combined_with_time
25 ErrorLog /var/log/apache2/error.log
28 # Turn on various features
34 # Block troublesome GPX data scrapping
36 RewriteCond %{REQUEST_METHOD} HEAD
37 RewriteRule ^/trace/\d+/data - [F,L]
42 RewriteCond %{HTTP_USER_AGENT} tilesAtHome
46 # Block requests for the old 404 map tile
48 RewriteRule ^/openlayers/img/404.png$ - [G,L]
51 # Block attempts to access old API versions
53 RewriteRule ^/api/0.[12345]/ - [G,L]
56 # Block JOSM revisions 1722-1727 as they have a serious bug that causes
57 # lat/lon to be swapped (http://josm.openstreetmap.de/ticket/2804)
59 RewriteCond %{HTTP_USER_AGENT} "^JOSM/[0-9]+\.[0-9]+ \(172[234567]\)"
63 # Block a changeset that seems to lock things up
65 RewriteRule ^/api/0.6/changeset/6823497/download$ - [F,L]
68 # Force special MIME type for crossdomain.xml files
70 <Files crossdomain.xml>
71 ForceType text/x-cross-domain-policy
75 # Set expiry for assets
78 Header unset Last-Modified
82 ExpiresDefault "access plus 1 year"
86 # Set expiry for attachments
88 <Location /attachments/>
89 Header unset Last-Modified
93 ExpiresDefault "access plus 1 year"
97 # Set expiry for other static content
99 <Location /export/embed.html>
100 ExpiresDefault "access plus 7 days"
103 ExpiresDefault "access plus 10 years"
105 <Location /javascripts/>
106 ExpiresDefault "access plus 10 years"
108 <Location /openlayers/>
109 ExpiresDefault "access plus 7 days"
111 <Location /stylesheets/>
112 ExpiresDefault "access plus 10 years"
116 # Set expiry for Potlatch 1
118 <Location /potlatch/>
119 ExpiresDefault "access plus 7 days"
123 # Set expiry for Potlatch 2
125 <Location /potlatch2/>
126 ExpiresByType application/x-shockwave-flash "access plus 1 day"
127 ExpiresByType application/xml "access plus 1 day"
128 ExpiresByType text/css "access plus 1 day"
129 ExpiresByType image/png "access plus 7 days"
135 DocumentRoot <%= node[:web][:base_directory] %>/rails/public
137 PassengerMinInstances 10
138 PassengerMaxRequests 5000
139 PassengerPreStart http://www.openstreetmap.org/
140 SetEnv SECRET_KEY_BASE <%= @secret_key_base %>
141 Alias /favicon.ico <%= node[:web][:base_directory] %>/rails/app/assets/images/favicon.ico
142 Alias /openlayers <%= node[:web][:base_directory] %>/rails/vendor/assets/openlayers
143 Alias /stats /store/rails/stats
144 Alias /user/image /store/rails/user/image
145 Alias /attachments /store/rails/attachments
148 # Preserve the host name when forwarding to the proxy
153 # Set a long timeout - changeset uploads can take a long time
158 # Allow all proxy requests
165 # Pass some other API calls to the backends via a load balancer
167 ProxyPass /api/0.6/map balancer://backend/api/0.6/map
168 ProxyPass /api/0.6/tracepoints balancer://backend/api/0.6/tracepoints
169 ProxyPass /api/0.6/amf/read balancer://backend/api/0.6/amf/read
170 ProxyPass /api/0.6/swf/trackpoints balancer://backend/api/0.6/swf/trackpoints
171 ProxyPassMatch ^(/api/0\.6/changeset/[0-9]+/(upload|download))$ balancer://backend$1
172 ProxyPassMatch ^(/api/0\.6/(node|way|relation)/[0-9]+)$ balancer://backend$1
173 ProxyPassMatch ^(/api/0\.6/(node|way|relation)/[0-9]+/(full|history|search|ways))$ balancer://backend$1
174 ProxyPass /api/0.6/nodes balancer://backend/api/0.6/nodes
175 ProxyPass /api/0.6/ways balancer://backend/api/0.6/ways
176 ProxyPass /api/0.6/relations balancer://backend/api/0.6/relations
177 ProxyPassMatch ^(/trace/[0-9]+/data(|/|.xml))$ balancer://backend$1
180 # Redirect trac and wiki requests to the right places
182 RedirectPermanent /trac/ http://trac.openstreetmap.org/
183 RedirectPermanent /wiki/ http://wiki.openstreetmap.org/
186 # Redirect requests for various images to the right place
188 RedirectPermanent /images/osm_logo.png http://www.openstreetmap.org/assets/osm_logo.png
189 RedirectPermanent /images/cc_button.png http://www.openstreetmap.org/assets/cc_button.png
192 # Define a load balancer for the backends
194 <Proxy balancer://backend>
195 ProxySet lbmethod=bybusyness
196 <% if port == 443 -%>
197 BalancerMember https://rails1
198 BalancerMember https://rails2
199 BalancerMember https://rails3
201 BalancerMember http://rails1
202 BalancerMember http://rails2
203 BalancerMember http://rails3
209 # Redirect requests which should be secure to https
211 RewriteCond %{REQUEST_URI} ^/login(\.html)?$ [OR]
212 RewriteCond %{REQUEST_URI} ^/user/(new|create-account\.html)$ [OR]
213 RewriteCond %{REQUEST_URI} ^/user/terms$ [OR]
214 RewriteCond %{REQUEST_URI} ^/user/save$ [OR]
215 RewriteCond %{REQUEST_URI} ^/user/([^/]+)/account$ [OR]
216 RewriteCond %{REQUEST_URI} ^/user/reset-password$
217 RewriteRule ^(.*)$ https://www.openstreetmap.org$1 [L,NE,R=permanent]
220 # Redirect api requests made to www.osm.org to api.osm.org
222 # RewriteCond %{HTTP_HOST} =www.openstreetmap.org
223 # RewriteRule ^/api/(.*)$ http://api.openstreetmap.org/api/$1 [L,NE,R=permanent]
226 # Redirect non-api requests made to api.osm.org to www.osm.org
228 RewriteCond %{HTTP_HOST} =api.openstreetmap.org
229 RewriteCond %{REQUEST_URI} !^/api/
230 RewriteRule ^(.*)$ http://www.openstreetmap.org$1 [L,NE,R=permanent]
231 <% elsif port == 443 -%>
234 # Redirect api requests made to www.osm.org to api.osm.org
236 # RewriteCond %{HTTP_HOST} =www.openstreetmap.org
237 # RewriteRule ^/api/(.*)$ https://api.openstreetmap.org/api/$1 [L,NE,R=permanent]
240 # Redirect non-api requests made to api.osm.org to www.osm.org
242 RewriteCond %{HTTP_HOST} =api.openstreetmap.org
243 RewriteCond %{REQUEST_URI} !^/api/
244 RewriteRule ^(.*)$ https://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 openstreetmap.ca www.openstreetmap.ca
257 ServerAlias maps.openstreetmap.ca mapz.openstreetmap.ca
258 ServerAlias openstreetmap.eu www.openstreetmap.eu
259 ServerAlias maps.openstreetmap.eu mapz.openstreetmap.eu
260 ServerAlias openstreetmap.pro www.openstreetmap.pro
261 ServerAlias maps.openstreetmap.pro mapz.openstreetmap.pro
262 ServerAlias openstreetmaps.org www.openstreetmaps.org
263 ServerAlias maps.openstreetmaps.org mapz.openstreetmaps.org
264 ServerAlias osm.org www.osm.org
265 ServerAlias maps.osm.org mapz.osm.org
266 ServerAlias openmaps.org www.openmaps.org
267 ServerAlias maps.openmaps.org mapz.openmaps.org
268 ServerAlias openstreetmap.io www.openstreetmap.io
269 ServerAlias maps.openstreetmap.io mapz.openstreetmap.io
270 ServerAlias osm.io www.osm.io
271 ServerAlias maps.osm.io mapz.osm.io
272 ServerAlias openworldmap.org www.openworldmap.org
273 ServerAlias maps.openworldmap.org mapz.openworldmap.org
274 ServerAlias freeosm.org www.freeosm.org
275 ServerAlias maps.freeosm.org mapz.freeosm.org
276 ServerAlias open-maps.org www.open-maps.org
277 ServerAlias maps.open-maps.org mapz.open-maps.org
278 ServerAlias open-maps.com www.open-maps.com
279 ServerAlias maps.open-maps.com mapz.open-maps.com
280 ServerAlias osmbugs.org www.osmbugs.org
281 ServerAlias maps.osmbugs.org mapz.osmbugs.org
284 ServerAlias openstreetmap.pm www.openstreetmap.pm
286 RedirectPermanent / http://www.openstreetmap.org/
290 ServerName openstreetmap.org
291 ServerAlias maps.openstreetmap.org mapz.openstreetmap.org
295 RedirectPermanent / https://www.openstreetmap.org/
299 ServerName openstreetmap.org.uk
300 ServerAlias www.openstreetmap.org.uk
301 ServerAlias openstreetmap.co.uk
302 ServerAlias www.openstreetmap.co.uk
304 RedirectPermanent /events.ics http://calendar.openstreetmap.org.uk/events.ics
305 RedirectPermanent / http://www.openstreetmap.org/
307 <% if node[:lsb][:release].to_f >= 14.04 -%>
309 <Directory <%= node[:web][:base_directory] %>/rails/public>