}
# 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;
rewrite ^/capabilities$ /api/capabilities;
}
-
+
# Strip asset tags
- location ~ ^/(images|javascripts|openlayers|stylesheets)/ {
+ location ~ ^/(images|javascripts|openlayers|stylesheets|user/image)/ {
rewrite ^/(.*)/[0-9]+$ /$1;
}
# 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;
}
# Set the MIME type for crossdomain.xml policy files
# or flash will ignore it
- location ~ /crossdomain\.xml {
- types {
- text/x-cross-domain-policy xml;
- }
+ location ~ /crossdomain\.xml$ {
+ types {
+ 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;
}
}
}