]> git.openstreetmap.org Git - rails.git/blobdiff - config/nginx.conf
Pull in block rules from the lighttpd config.
[rails.git] / config / nginx.conf
index 41fd52d8d2eefc666ec23174e9366181cdb6e799..1108be5dc4b9b295183b3c235ab719d0011f5d7f 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;
@@ -164,18 +175,21 @@ http {
 
         # Handle bulk api requests
         location ~ ^/api/0\.6/(map|relation|trackpoints|amf|amf/read|swf/trackpoints|trace/[0-9]+/data)$ {
+            fastcgi_read_timeout 300;
             fastcgi_pass bulkapi_backend;
             break;
         }
         
         # Send search requests to the bulk api backend
         location ~ ^/api/0\.6/.*/search$ {
+            fastcgi_read_timeout 300;
             fastcgi_pass bulkapi_backend;
             break;
         }
 
         # Send requests for full objects to the bulk api backend
         location ~ ^/api/0\.6/.*/full$ {
+            fastcgi_read_timeout 300;
             fastcgi_pass bulkapi_backend;
             break;
         }
@@ -225,5 +239,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;
+        }
     }
 }