]> git.openstreetmap.org Git - rails.git/blobdiff - config/nginx.conf
nginx fixes, including http://api.openstreetmap/0.6/... support
[rails.git] / config / nginx.conf
index bd43f4c35bad85dfc5649b6c02a10962c2958234..ae779854686bafb52270be786e6a0efb7012ec27 100644 (file)
@@ -124,9 +124,6 @@ http {
 
         # Use index.html as the index page
         index index.html;
-    
-        # Include fastcgi configuration
-        include /etc/nginx/fastcgi_params;
 
         # Redirect trac requests for historical reasons
         location /trac/ {
@@ -139,13 +136,12 @@ http {
         }
 
         # Placeholder for blocking abuse
-        location / {
-            allow all; 
-        }
+        allow all; 
     
         # Map api.openstreetmap/0.n/... to api.openstreetmap/api/0.n/...
-        if ($host ~* api\.(.*)) {
+        if ($host ~* ^api\.) {
             rewrite ^/(0\.[0-9]+)/(.*)$ /api/$1/$2;
+            rewrite ^/capabilities$ /api/capabilities;
         }
     
         # Strip asset tags
@@ -153,6 +149,10 @@ http {
             rewrite ^/(.*)/[0-9]+$ /$1;
         }
 
+        # Include fastcgi configuration
+        include /etc/nginx/fastcgi_params;
+        fastcgi_param REQUEST_URI $uri;
+
         # Handle tiles@home requests
         location /api/ {
             if ($http_user_agent ~ "^tilesAtHome") {
@@ -188,11 +188,14 @@ http {
 
         # Deny old and unknown API versions
         location ~ ^/api/0\.[0-9]+/ {
-            deny all;
+            return 404;
         }
             
         # Handle Special Case Expiry
-        location ~ ^/(export|openlayers)/ {
+        location ~ ^/openlayers/ {
+            expires 7d;
+        }
+        location ~ ^/export/embed.html$ {
             expires 7d;
         }
         location ~ ^/(images|javascripts|stylesheets)/ {
@@ -210,10 +213,17 @@ http {
             }
         }
 
+        location = /api/capabilities {
+            fastcgi_pass web_backend;
+            break;
+        }
+
         # Set the MIME type for crossdomain.xml policy files
         # or flash will ignore it
-        location ~ /crossdomain.xml$ {
-            default_type text/x-cross-domain-policy;
+        location ~ /crossdomain\.xml {
+                       types {
+                               text/x-cross-domain-policy xml;
+                       }
         }
     }
 }