user www-data; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; #access_log /var/log/nginx/access.log; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on; gzip on; gzip_min_length 1100; gzip_buffers 4 8k; # text/html is added gzip_types by default gzip_types text/plain application/x-javascript application/x-shockwave-flash text/css; #NO CGI SUPPORT IN NGINX fix stat .pl later upstream web_backend { server 127.0.0.1:8000; server 127.0.0.1:8001; server 127.0.0.1:8002; server 127.0.0.1:8003; server 127.0.0.1:8004; server 127.0.0.1:8005; server 127.0.0.1:8006; server 127.0.0.1:8007; server 127.0.0.1:8008; server 127.0.0.1:8009; server 127.0.0.1:8010; server 127.0.0.1:8011; server 127.0.0.1:8012; server 127.0.0.1:8013; server 127.0.0.1:8014; server 127.0.0.1:8015; server 127.0.0.1:8016; server 127.0.0.1:8017; server 127.0.0.1:8018; server 127.0.0.1:8019; server 127.0.0.1:8020; server 127.0.0.1:8021; server 127.0.0.1:8022; server 127.0.0.1:8023; server 127.0.0.1:8024; server 127.0.0.1:8025; server 127.0.0.1:8026; server 127.0.0.1:8027; server 127.0.0.1:8028; server 127.0.0.1:8029; } upstream api_backend { server 127.0.0.1:8030; server 127.0.0.1:8031; server 127.0.0.1:8032; server 127.0.0.1:8033; server 127.0.0.1:8034; server 127.0.0.1:8035; server 127.0.0.1:8036; server 127.0.0.1:8037; server 127.0.0.1:8038; server 127.0.0.1:8039; server 127.0.0.1:8040; server 127.0.0.1:8041; server 127.0.0.1:8042; server 127.0.0.1:8043; server 127.0.0.1:8044; } upstream bulkapi_backend { server 10.0.0.10:8000; server 10.0.0.11:8000; server 10.0.0.12:8000; server 10.0.0.10:8001; server 10.0.0.11:8001; server 10.0.0.12:8001; server 10.0.0.10:8002; server 10.0.0.11:8002; server 10.0.0.12:8002; server 10.0.0.10:8003; server 10.0.0.11:8003; server 10.0.0.12:8003; } upstream tah_backend { server 10.0.0.10:8004; server 10.0.0.11:8004; server 10.0.0.12:8004; server 10.0.0.10:8005; server 10.0.0.11:8005; server 10.0.0.12:8005; } server { listen 80; server_name .openstreetmap.org api.openstreetmap.org; root /home/rails/public; index index.html; access_log /var/log/nginx/openstreetmap.org.access.log; if ($host ~* api\.(.*)) { rewrite ^/(0\.[0-9]+)/(.*)$ /api/$1/$2 } location / { deny 143.210.16.160; allow all; } location /trac/ { rewrite ^/trac/(.*)$ http://trac.openstreetmap.org/$1 permanent; } location /wiki/ { rewrite ^/wiki/(.*)$ http://wiki.openstreetmap.org/$1 permanent; } location /api/ { include /etc/nginx/fastcgi_params; if ($http_user_agent = "tilesAtHome") { fastcgi_pass tah_backend; break; } } location ~ ^/api/0\.6/(map|trackpoints|amf|amf/read|swf/trackpoints)$ { include /etc/nginx/fastcgi_params; fastcgi_pass bulkapi_backend; break; } location ~ ^/api/0\.6/.*/search$ { include /etc/nginx/fastcgi_params; fastcgi_pass bulkapi_backend; break; } location ~ ^/api/0\.6/ { include /etc/nginx/fastcgi_params; fastcgi_pass api_backend; break; } location ~ ^/api/0\.[0-9]+/ { deny all; } location / { include /etc/nginx/fastcgi_params; if (!-f $request_filename) { fastcgi_pass web_backend; break; } } location /crossdomain.xml { default_type text/x-cross-domain-policy; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/nginx-default; } } }