Tidy things up and fix a few errors.
authorTom Hughes <tom@compton.nu>
Mon, 20 Apr 2009 16:59:12 +0000 (16:59 +0000)
committerTom Hughes <tom@compton.nu>
Mon, 20 Apr 2009 16:59:12 +0000 (16:59 +0000)
config/nginx.conf

index 3de9275fc7344e6992df6461c2784888adc2a17b..1f94ee9d78b583d32e70c833014ebfbb8ca8ec4e 100644 (file)
@@ -1,8 +1,15 @@
+# Run as www-data
 user www-data www-data;
+
+# Use two worker processes
 worker_processes  2;
 
-error_log  /var/log/nginx/error.log;
-pid        /var/run/nginx.pid;
+# Define PID files
+pid /var/run/nginx.pid;
+
+# Define log files
+access_log /var/log/nginx/access.log;
+error_log /var/log/nginx/error.log;
 
 events {
     # max clients = worker_processes * worker_connections
@@ -10,26 +17,24 @@ events {
 }
 
 http {
-    include       /etc/nginx/mime.types;
+    # Configure MIME types 
+    include /etc/nginx/mime.types;
     default_type  application/octet-stream;
 
-    #access_log  /var/log/nginx/access.log;
-
-    sendfile        on;
-    #tcp_nopush     on;
+    # Configure network details
+    sendfile on;
+    keepalive_timeout 65;
+    tcp_nodelay on;
 
-    #keepalive_timeout  0;
-    keepalive_timeout  65;
-    tcp_nodelay        on;
-
-    gzip  on;
+    # Configure compression (text/html is compressed by default)
+    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
 
+    # Define fastcgi backend for web pages
     upstream web_backend {
         server 127.0.0.1:8000;
         server 127.0.0.1:8001;
@@ -63,6 +68,7 @@ http {
         server 127.0.0.1:8029;
     }
 
+    # Define fastcgi backend for api requests
     upstream api_backend {
         server 127.0.0.1:8030;
         server 127.0.0.1:8031;
@@ -81,6 +87,7 @@ http {
         server 127.0.0.1:8044;
     }
 
+    # Define fastcgi backend for bulk api requests
     upstream bulkapi_backend {
         server 10.0.0.10:8000;
         server 10.0.0.11:8000;
@@ -96,6 +103,7 @@ http {
         server 10.0.0.12:8003;
     }
     
+    # Define fastcgi backend for tiles@home requests
     upstream tah_backend {
         server 10.0.0.10:8004;
         server 10.0.0.11:8004;
@@ -105,35 +113,41 @@ http {
         server 10.0.0.12:8005;
     }
 
-server {
-        listen   80;
-        server_name  .openstreetmap.org api.openstreetmap.org;
+    server {
+        # Listen on port 80
+        listen 80;
+
+        # Serve rails public files
         root /home/rails/public;
+
+        # Use index.html as the index page
         index index.html;
-        access_log  /var/log/nginx/openstreetmap.org.access.log;
     
+        # Include fastcgi configuration
         include /etc/nginx/fastcgi_params;
 
-        #Redirect Historical Links to correct servers
+        # Redirect trac requests for historical reasons
         location /trac/ {
             rewrite ^/trac/(.*)$ http://trac.openstreetmap.org/$1 permanent;
         }
 
+        # Redirect wiki requests for historical reasons
         location /wiki/ {
             rewrite ^/wiki/(.*)$ http://wiki.openstreetmap.org/$1 permanent;
         }
 
+        # Placeholder for blocking abuse
         location / {
             allow all; 
         }
     
-        #Handle api.openstreetmap/ -> api.openstreetmap/api/
+        # Map api.openstreetmap/0.n/... to api.openstreetmap/api/0.n/...
         if ($host ~* api\.(.*)) {
             rewrite ^/(0\.[0-9]+)/(.*)$ /api/$1/$2;
         }
     
+        # Handle tiles@home requests
         location /api/ {
-            include /etc/nginx/fastcgi_params;
             if ($http_user_agent ~ "^tilesAtHome") {
                 #deny all;
                 fastcgi_pass tah_backend;
@@ -141,57 +155,58 @@ server {
             }
         }
 
+        # Handle bulk api requests
         location ~ ^/api/0\.6/(map|relation|trackpoints|amf|amf/read|swf/trackpoints|trace/[0-9]+/data)$ {
             fastcgi_pass bulkapi_backend;
             break;
         }
         
+        # Send search requests to the bulk api backend
         location ~ ^/api/0\.6/.*/search$ {
             fastcgi_pass bulkapi_backend;
             break;
         }
 
+        # Send requests for full objects to the bulk api backend
         location ~ ^/api/0\.6/.*/full$ {
             fastcgi_pass bulkapi_backend;
             break;
         }
 
-        # fastcgi Web / Data Browser / Relations etc
+        # Handle the remaining api requests
         location ~ ^/api/0\.6/ {
             fastcgi_pass api_backend;
             break;
         }
 
-        #Deny unknown API version
+        # Deny old and unknown API versions
         location ~ ^/api/0\.[0-9]+/ {
             deny all;
         }
             
-        #Handle Special Case Expiry
+        # Handle Special Case Expiry
         location ~ ^/(export|openlayers)/ {
             expires 7d;
         }
         location ~ ^/(images|javascripts|stylesheets)/ {
             expires max;
         }
-    
+
+        # Send everything else to the web backend unless it exists
+        # in the rails public tree    
         location / {
             fastcgi_index index.html;
+
             if (!-f $request_filename) {
                 fastcgi_pass web_backend;
                 break;
             }
         }
 
-        location /crossdomain.xml {
+        # Set the MIME type for crossdomain.xml policy files
+        # or flash will ignore it
+        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;
-        }
     }
 }