From: Grant Slater <openstreetmap@firefishy.com>
Date: Mon, 20 Apr 2009 14:20:33 +0000 (+0000)
Subject: initial untest nginx config. API 0.6 tweaking still required.
X-Git-Tag: live~8835
X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/b90e70bd914823701fa1db8dcab52833c230c42b?ds=sidebyside

initial untest nginx config. API 0.6 tweaking still required.
---

diff --git a/config/nginx.conf b/config/nginx.conf
new file mode 100644
index 000000000..04a87ebc2
--- /dev/null
+++ b/config/nginx.conf
@@ -0,0 +1,172 @@
+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
+
+        access_log  /var/log/nginx/openstreetmap.org.access.log;
+
+		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;
+		}
+
+		if ($http_user_agent == "tilesAtHome" {
+			include /etc/nginx/fastcgi_params;
+			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;
+		}
+		
+		if (!-f $request_filename) {
+			include /etc/nginx/fastcgi_params;
+			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;
+        }
+
+	}
+}
+