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 BalancerMember http://rails1
197 BalancerMember http://rails2
198 BalancerMember http://rails3
203 # Redirect requests which should be secure to https
205 RewriteCond %{REQUEST_URI} ^/login(\.html)?$ [OR]
206 RewriteCond %{REQUEST_URI} ^/user/(new|create-account\.html)$ [OR]
207 RewriteCond %{REQUEST_URI} ^/user/terms$ [OR]
208 RewriteCond %{REQUEST_URI} ^/user/save$ [OR]
209 RewriteCond %{REQUEST_URI} ^/user/([^/]+)/account$ [OR]
210 RewriteCond %{REQUEST_URI} ^/user/reset-password$
211 RewriteRule ^(.*)$ https://www.openstreetmap.org$1 [L,NE,R=permanent]
214 # Redirect api requests made to www.osm.org to api.osm.org
216 # RewriteCond %{HTTP_HOST} =www.openstreetmap.org
217 # RewriteRule ^/api/(.*)$ http://api.openstreetmap.org/api/$1 [L,NE,R=permanent]
220 # Redirect non-api requests made to api.osm.org to www.osm.org
222 RewriteCond %{HTTP_HOST} =api.openstreetmap.org
223 RewriteCond %{REQUEST_URI} !^/api/
224 RewriteRule ^(.*)$ http://www.openstreetmap.org$1 [L,NE,R=permanent]
225 <% elsif port == 443 -%>
228 # Redirect api requests made to www.osm.org to api.osm.org
230 # RewriteCond %{HTTP_HOST} =www.openstreetmap.org
231 # RewriteRule ^/api/(.*)$ https://api.openstreetmap.org/api/$1 [L,NE,R=permanent]
234 # Redirect non-api requests made to api.osm.org to www.osm.org
236 RewriteCond %{HTTP_HOST} =api.openstreetmap.org
237 RewriteCond %{REQUEST_URI} !^/api/
238 RewriteRule ^(.*)$ https://www.openstreetmap.org$1 [L,NE,R=permanent]
244 ServerName openstreetmap.org
245 ServerAlias maps.openstreetmap.org mapz.openstreetmap.org
246 ServerAlias openstreetmap.com www.openstreetmap.com
247 ServerAlias maps.openstreetmap.com mapz.openstreetmap.com
248 ServerAlias openstreetmap.net www.openstreetmap.net
249 ServerAlias maps.openstreetmap.net mapz.openstreetmap.net
250 ServerAlias openstreetmap.ca www.openstreetmap.ca
251 ServerAlias maps.openstreetmap.ca mapz.openstreetmap.ca
252 ServerAlias openstreetmap.eu www.openstreetmap.eu
253 ServerAlias maps.openstreetmap.eu mapz.openstreetmap.eu
254 ServerAlias openstreetmap.pro www.openstreetmap.pro
255 ServerAlias maps.openstreetmap.pro mapz.openstreetmap.pro
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 openstreetmap.io www.openstreetmap.io
263 ServerAlias maps.openstreetmap.io mapz.openstreetmap.io
264 ServerAlias osm.io www.osm.io
265 ServerAlias maps.osm.io mapz.osm.io
266 ServerAlias openworldmap.org www.openworldmap.org
267 ServerAlias maps.openworldmap.org mapz.openworldmap.org
268 ServerAlias freeosm.org www.freeosm.org
269 ServerAlias maps.freeosm.org mapz.freeosm.org
270 ServerAlias open-maps.org www.open-maps.org
271 ServerAlias maps.open-maps.org mapz.open-maps.org
272 ServerAlias open-maps.com www.open-maps.com
273 ServerAlias maps.open-maps.com mapz.open-maps.com
274 ServerAlias osmbugs.org www.osmbugs.org
275 ServerAlias maps.osmbugs.org mapz.osmbugs.org
278 ServerAlias openstreetmap.pm www.openstreetmap.pm
280 RedirectPermanent / http://www.openstreetmap.org/
284 ServerName openstreetmap.org
285 ServerAlias maps.openstreetmap.org mapz.openstreetmap.org
289 RedirectPermanent / https://www.openstreetmap.org/
293 ServerName openstreetmap.org.uk
294 ServerAlias www.openstreetmap.org.uk
295 ServerAlias openstreetmap.co.uk
296 ServerAlias www.openstreetmap.co.uk
298 RedirectPermanent /events.ics http://calendar.openstreetmap.org.uk/events.ics
299 RedirectPermanent / http://www.openstreetmap.org/
301 <% if node[:lsb][:release].to_f >= 14.04 -%>
303 <Directory <%= node[:web][:base_directory] %>/rails/public>
307 <Directory /srv/www.openstreetmap.org/rails/app/assets>
311 <Directory /srv/www.openstreetmap.org/rails/vendor/assets>
315 <Directory /store/rails/stats>
319 <Directory /store/rails/user/image>
323 <Directory /store/rails/attachments>