]> git.openstreetmap.org Git - rails.git/blobdiff - config/nginx.conf
nginx fix expiry to actually work on images/javascripts/etc
[rails.git] / config / nginx.conf
index a78e1dc705312ddb733b91332600e1422098dcca..1da97a6d549cbc69187f46f108ff6c223f084a64 100644 (file)
@@ -136,8 +136,19 @@ http {
         }
 
         # Placeholder for blocking abuse
+        include /etc/nginx/blocked_hosts;
         allow all; 
-    
+
+        # Block some bulk download agents
+        if ($http_user_agent ~* LWP::Simple|downloadosm|BBBike) {
+            return 403;
+        }
+
+        # Block some robots
+        if ($http_user_agent ~* msnbot|twiceler) {
+            return 403;
+        }
         # Map api.openstreetmap/0.n/... to api.openstreetmap/api/0.n/...
         if ($host ~* ^api\.) {
             rewrite ^/(0\.[0-9]+)/(.*)$ /api/$1/$2;
@@ -147,6 +158,16 @@ http {
         # Strip asset tags
         location ~ ^/(images|javascripts|openlayers|stylesheets|user/image)/ {
             rewrite ^/(.*)/[0-9]+$ /$1;
+            expires max;
+
+            # Handle Special Case Expiry
+            if ($uri ~ ^/openlayers/) {
+                expires 7d;
+            }
+        }
+        # Handle Special Case Expiry
+        location ~ ^/export/embed.html$ {
+            expires 7d;
         }
 
         # Include fastcgi configuration
@@ -194,17 +215,6 @@ http {
             return 404;
         }
             
-        # Handle Special Case Expiry
-        location ~ ^/openlayers/ {
-            expires 7d;
-        }
-        location ~ ^/export/embed.html$ {
-            expires 7d;
-        }
-        location ~ ^/(images|javascripts|stylesheets)/ {
-            expires max;
-        }
-
         # Send everything else to the web backend unless it exists
         # in the rails public tree    
         location / {
@@ -228,5 +238,13 @@ http {
                 text/x-cross-domain-policy xml;
             }
         }
+
+        # Give munin access to some statistics
+        location /server-status {
+            stub_status on;
+            access_log off;
+            allow 127.0.0.1;
+            deny all;
+        }
     }
 }