]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/web/templates/default/apache.backend.erb
Route some additional API calls to cgimap
[chef.git] / cookbooks / web / templates / default / apache.backend.erb
index d6dc4cd396460d05390eab93d0e36d8568cbaf43..16662c6407f25c423448f8cabd8d76bec32e5b4b 100644 (file)
@@ -1,25 +1,24 @@
 # DO NOT EDIT - This file is being maintained by Chef
 # DO NOT EDIT - This file is being maintained by Chef
-<% [80, 443].each do |port| -%>
 
 
-<VirtualHost *:<%= port %>>
+<VirtualHost *:443>
   #
   # Basic server configuration
   #
   ServerName <%= node[:fqdn] %>
   ServerAlias api.openstreetmap.org www.openstreetmap.org
   ServerAdmin webmaster@openstreetmap.org
   #
   # Basic server configuration
   #
   ServerName <%= node[:fqdn] %>
   ServerAlias api.openstreetmap.org www.openstreetmap.org
   ServerAdmin webmaster@openstreetmap.org
-<% if port == 443 -%>
 
   #
   # Enable SSL
   #
   SSLEngine on
 
   #
   # Enable SSL
   #
   SSLEngine on
-<% end -%>
+  SSLCertificateFile /etc/ssl/certs/www.openstreetmap.org.pem
+  SSLCertificateKeyFile /etc/ssl/private/www.openstreetmap.org.key
 
   #
   # Setup logging
   #
 
   #
   # Setup logging
   #
-  LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %Ts" combined_with_time
+  LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %Dus %{UNIQUE_ID}e %{SSL_PROTOCOL}x %{SSL_CIPHER}x" combined_with_time
   CustomLog /var/log/apache2/access.log combined_with_time
   ErrorLog /var/log/apache2/error.log
 
   CustomLog /var/log/apache2/access.log combined_with_time
   ErrorLog /var/log/apache2/error.log
 
   #
   RewriteEngine on
 
   #
   RewriteEngine on
 
+  #
+  # Recover the unique ID from the request headers
+  #
+  SetEnvIf X-Request-Id ^(.*)$ UNIQUE_ID=$1
+
   #
   # Configure rails
   #
   #
   # Configure rails
   #
   RailsEnv production
   PassengerMinInstances 3
   PassengerMaxRequests 500
   RailsEnv production
   PassengerMinInstances 3
   PassengerMaxRequests 500
-<% if port == 443 -%>
   PassengerPreStart https://www.openstreetmap.org/
   PassengerPreStart https://www.openstreetmap.org/
-<% else -%>
-  PassengerPreStart http://www.openstreetmap.org/
-<% end -%>
+  PassengerAppGroupName rails
+  SetEnv OPENSTREETMAP_STATUS <%= @status %>
   SetEnv SECRET_KEY_BASE <%= @secret_key_base %>
 
   #
   # Get the real remote IP for requests via a trusted proxy
   #
   RemoteIPHeader X-Forwarded-For
   SetEnv SECRET_KEY_BASE <%= @secret_key_base %>
 
   #
   # Get the real remote IP for requests via a trusted proxy
   #
   RemoteIPHeader X-Forwarded-For
-  RemoteIPTrustedProxy 146.179.159.160/27
+  RemoteIPTrustedProxy 10.0.32.0/24
+  RemoteIPTrustedProxy 10.0.48.0/24
+
+  #
+  # Pass authentication related headers to cgimap
+  #
+  <Location />
+    CGIPassAuth On
+  </Location>
 
   #
   # Pass supported calls to cgimap
   #
   RewriteRule ^/api/0\.6/map$ fcgi://127.0.0.1:8000$0 [P]
   RewriteCond %{REQUEST_METHOD} ^(HEAD|GET)$
 
   #
   # Pass supported calls to cgimap
   #
   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/(node|way|relation|changeset)/[0-9]+$ fcgi://127.0.0.1:8000$0 [P]
+  RewriteRule ^/api/0\.6/(node|way|relation)/[0-9]+/history$ fcgi://127.0.0.1:8000$0 [P]
+  RewriteRule ^/api/0\.6/node/[0-9]+/ways$ fcgi://127.0.0.1:8000$0 [P]
+  RewriteRule ^/api/0\.6/(node|way|relation)/[0-9]+/relations$ 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]
   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]
+  RewriteRule ^/api/0\.6/changeset/[0-9]+/download$ fcgi://127.0.0.1:8000$0 [P]
+  RewriteRule ^/api/0\.6/changeset/[0-9]+/upload$ fcgi://127.0.0.1:8000$0 [P]
 </VirtualHost>
 </VirtualHost>
-<% end -%>
 
 <Directory <%= node[:web][:base_directory] %>/rails/public>
   Require all granted
 
 <Directory <%= node[:web][:base_directory] %>/rails/public>
   Require all granted