]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/web/templates/default/apache.frontend.erb
Switch to emergency frontend only setup
[chef.git] / cookbooks / web / templates / default / apache.frontend.erb
index 244aa0b7c4a0af98c10df15151b56117db43d955..ff014632566aea1f01b9863382931054688682a3 100644 (file)
@@ -14,6 +14,7 @@
   # Enable SSL
   #
   SSLEngine on
   # Enable SSL
   #
   SSLEngine on
+  SSLProxyEngine on
 <% end -%>
 
   #
 <% end -%>
 
   #
   PassengerMinInstances 10
   PassengerMaxRequests 5000
   PassengerPreStart http://www.openstreetmap.org/
   PassengerMinInstances 10
   PassengerMaxRequests 5000
   PassengerPreStart http://www.openstreetmap.org/
+  SetEnv SECRET_KEY_BASE <%= @secret_key_base %>
   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 /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 /attachments /store/rails/attachments
 
   #
   Alias /attachments /store/rails/attachments
 
   #
-  # Preserve the host name when forwarding to the proxy
+  # Pass supported calls to cgimap
   #
   #
-  ProxyPreserveHost on
-
-  #
-  # Set a long timeout - changeset uploads can take a long time
-  #
-  ProxyTimeout 3600
-
-  #
-  # Allow all proxy requests
-  #
-  <Proxy *>
-    Allow from all
-  </Proxy>
-
-  #
-  # Pass some other API calls to the backends via a load balancer
-  #
-  ProxyPass /api/0\.6/map balancer://backend/api/0.6/map
-  ProxyPass /api/0\.6/tracepoints balancer://backend/api/0.6/tracepoints
-  ProxyPass /api/0\.6/amf/read balancer://backend/api/0.6/amf/read
-  ProxyPass /api/0\.6/swf/trackpoints balancer://backend/api/0.6/swf/trackpoints
-  ProxyPassMatch ^(/api/0\.6/changeset/[0-9]+/(upload|download))$ balancer://backend$1
-  ProxyPassMatch ^(/api/0\.6/(node|way|relation)/[0-9]+)$ balancer://backend$1
-  ProxyPassMatch ^(/api/0\.6/(node|way|relation)/[0-9]+/(full|history|search|ways))$ balancer://backend$1
-  ProxyPass /api/0\.6/nodes balancer://backend/api/0.6/nodes
-  ProxyPass /api/0\.6/ways balancer://backend/api/0.6/ways
-  ProxyPass /api/0\.6/relations balancer://backend/api/0.6/relations
-  ProxyPassMatch ^(/trace/[0-9]+/data(|/|.xml))$ balancer://backend$1
+  RewriteRule ^/api/0\.6/map$ fcgi://127.0.0.1:8000$0 [P]
+  RewriteCond %{REQUEST_METHOD} ^(HEAD|GET)$
+  RewriteRule ^/api/0\.6/(node|way|relation)/[0-9]+$ fcgi://127.0.0.1:8000$0 [P]
+  RewriteRule ^/api/0\.6/(way|relation)/[0-9]+/full$ fcgi://127.0.0.1:8000$0 [P]
+  RewriteRule ^/api/0\.6/(nodes|ways|relations)$ fcgi://127.0.0.1:8000$0 [P]
 
   #
   # Redirect trac and wiki requests to the right places
 
   #
   # Redirect trac and wiki requests to the right places
   #
   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
   #
   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 backends
-  #
-  <Proxy balancer://backend>
-    ProxySet lbmethod=bybusyness
-    BalancerMember http://rails1
-    BalancerMember http://rails2
-    BalancerMember http://rails3
-  </Proxy>
 <% if port == 80 -%>
 
   #
 <% if port == 80 -%>
 
   #
-  # Redirect requests which should be secure to the SSL site
+  # Redirect requests which should be secure to https
   #
   RewriteCond %{REQUEST_URI} ^/login(\.html)?$ [OR]
   RewriteCond %{REQUEST_URI} ^/user/(new|create-account\.html)$ [OR]
   #
   RewriteCond %{REQUEST_URI} ^/login(\.html)?$ [OR]
   RewriteCond %{REQUEST_URI} ^/user/(new|create-account\.html)$ [OR]
 <% elsif port == 443 -%>
 
   #
 <% elsif port == 443 -%>
 
   #
-  # Redirect api requests to api.osm.org over http
+  # Redirect api requests made to www.osm.org to api.osm.org
   #
   #
-  RewriteRule ^/api/(.*)$ http://api.openstreetmap.org/api/$1 [L,NE,R=permanent]
+#  RewriteCond %{HTTP_HOST} =www.openstreetmap.org
+#  RewriteRule ^/api/(.*)$ https://api.openstreetmap.org/api/$1 [L,NE,R=permanent]
 
   #
 
   #
-  # Redirect requests which do not need to be secure over http
+  # Redirect non-api requests made to api.osm.org to www.osm.org
   #
   #
-  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]
+  RewriteCond %{HTTP_HOST} =api.openstreetmap.org
+  RewriteCond %{REQUEST_URI} !^/api/
+  RewriteRule ^(.*)$ https://www.openstreetmap.org$1 [L,NE,R=permanent]
 <% end -%>
 </VirtualHost>
 
 <% end -%>
 </VirtualHost>
 
   ServerAlias maps.openstreetmap.com mapz.openstreetmap.com
   ServerAlias openstreetmap.net www.openstreetmap.net
   ServerAlias maps.openstreetmap.net mapz.openstreetmap.net
   ServerAlias maps.openstreetmap.com mapz.openstreetmap.com
   ServerAlias openstreetmap.net www.openstreetmap.net
   ServerAlias maps.openstreetmap.net mapz.openstreetmap.net
+  ServerAlias openstreetmap.ca www.openstreetmap.ca
+  ServerAlias maps.openstreetmap.ca mapz.openstreetmap.ca
+  ServerAlias openstreetmap.eu www.openstreetmap.eu
+  ServerAlias maps.openstreetmap.eu mapz.openstreetmap.eu
+  ServerAlias openstreetmap.pro www.openstreetmap.pro
+  ServerAlias maps.openstreetmap.pro mapz.openstreetmap.pro
   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 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 openstreetmap.io www.openstreetmap.io
+  ServerAlias maps.openstreetmap.io mapz.openstreetmap.io
+  ServerAlias osm.io www.osm.io
+  ServerAlias maps.osm.io mapz.osm.io
   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
   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
+  ServerAlias open-maps.org www.open-maps.org
+  ServerAlias maps.open-maps.org mapz.open-maps.org
+  ServerAlias open-maps.com www.open-maps.com
+  ServerAlias maps.open-maps.com mapz.open-maps.com
+  ServerAlias osmbugs.org www.osmbugs.org
+  ServerAlias maps.osmbugs.org mapz.osmbugs.org
+
+  #Third Party Sites
+  ServerAlias openstreetmap.pm www.openstreetmap.pm
 
   RedirectPermanent / http://www.openstreetmap.org/
 </VirtualHost>
 
 
   RedirectPermanent / http://www.openstreetmap.org/
 </VirtualHost>
 
+<VirtualHost *:443>
+  ServerName openstreetmap.org
+  ServerAlias maps.openstreetmap.org mapz.openstreetmap.org
+
+  SSLEngine on
+
+  RedirectPermanent / https://www.openstreetmap.org/
+</VirtualHost>
+
 <VirtualHost *:80>
   ServerName openstreetmap.org.uk
   ServerAlias www.openstreetmap.org.uk
 <VirtualHost *:80>
   ServerName openstreetmap.org.uk
   ServerAlias www.openstreetmap.org.uk
   RedirectPermanent /events.ics http://calendar.openstreetmap.org.uk/events.ics
   RedirectPermanent / http://www.openstreetmap.org/
 </VirtualHost>
   RedirectPermanent /events.ics http://calendar.openstreetmap.org.uk/events.ics
   RedirectPermanent / http://www.openstreetmap.org/
 </VirtualHost>
+
+<Directory <%= node[:web][:base_directory] %>/rails/public>
+  Require all granted
+</Directory>
+
+<Directory /srv/www.openstreetmap.org/rails/app/assets>
+  Require all granted
+</Directory>
+
+<Directory /srv/www.openstreetmap.org/rails/vendor/assets>
+  Require all granted
+</Directory>
+
+<Directory /store/rails/stats>
+  Require all granted
+</Directory>
+
+<Directory /store/rails/user/image>
+  Require all granted
+</Directory>
+
+<Directory /store/rails/attachments>
+  Require all granted
+</Directory>