nginx syntax tweaks
authorGrant Slater <openstreetmap@firefishy.com>
Mon, 20 Apr 2009 15:38:48 +0000 (15:38 +0000)
committerGrant Slater <openstreetmap@firefishy.com>
Mon, 20 Apr 2009 15:38:48 +0000 (15:38 +0000)
config/nginx.conf

index 745fa555ed9f71a7ca99215248af04789a23be3a..1aa52c5c81ed42d545565befe09c8dcb8c7ed22e 100644 (file)
@@ -1,10 +1,11 @@
-user www-data;\r
-worker_processes  1;\r
+user www-data www-data;\r
+worker_processes  2;\r
 \r
 error_log  /var/log/nginx/error.log;\r
 pid        /var/run/nginx.pid;\r
 \r
 events {\r
+       # max clients = worker_processes * worker_connections\r
     worker_connections  1024;\r
 }\r
 \r
@@ -26,6 +27,7 @@ http {
        gzip_buffers 4 8k;\r
        # text/html is added gzip_types by default\r
        gzip_types text/plain application/x-javascript application/x-shockwave-flash text/css;\r
+       \r
        #NO CGI SUPPORT IN NGINX fix stat .pl later\r
 \r
        upstream web_backend {\r
@@ -103,22 +105,16 @@ http {
                server 10.0.0.12:8005;\r
        }\r
 \r
-       server {\r
-               listen   80;\r
-               server_name  .openstreetmap.org api.openstreetmap.org;\r
+server {\r
+               listen   80;\r
+               server_name  .openstreetmap.org api.openstreetmap.org;\r
                root /home/rails/public;\r
                index index.html;\r
-               access_log  /var/log/nginx/openstreetmap.org.access.log;\r
-\r
-               if ($host ~* api\.(.*)) {\r
-                       rewrite ^/(0\.[0-9]+)/(.*)$ /api/$1/$2\r
-               }\r
-\r
-               location / {\r
-                       deny 143.210.16.160;\r
-                       allow all; \r
-               }\r
+               access_log  /var/log/nginx/openstreetmap.org.access.log;\r
+       \r
+               include /etc/nginx/fastcgi_params;\r
 \r
+               #Redirect Historical Links to correct servers\r
                location /trac/ {\r
                        rewrite ^/trac/(.*)$ http://trac.openstreetmap.org/$1 permanent;\r
                }\r
@@ -126,39 +122,77 @@ http {
                location /wiki/ {\r
                        rewrite ^/wiki/(.*)$ http://wiki.openstreetmap.org/$1 permanent;\r
                }\r
-               \r
+\r
+               location / {\r
+                       deny 143.210.16.160;\r
+                       deny 69.89.21.73;\r
+                       deny 91.89.145.219;\r
+                       deny 195.190.169.111;\r
+                       deny 84.237.213.10;\r
+                       deny 70.22.219.249;\r
+                       deny 83.226.40.87;\r
+                       deny 82.178.145.87;\r
+                       deny 91.78.50.134;\r
+                       deny 91.77.7.139;\r
+                       deny 85.126.23.106;\r
+                       deny 213.171.196.166;\r
+                       deny 81.151.8.64;\r
+                       deny 130.226.235.215;\r
+                       deny 141.99.254.253;\r
+                       deny 61.228.43.32;\r
+                       allow all; \r
+               }\r
+       \r
+               #Handle api.openstreetmap/ -> api.openstreetmap/api/\r
+               if ($host ~* api\.(.*)) {\r
+                       rewrite ^/(0\.[0-9]+)/(.*)$ /api/$1/$2\r
+               }\r
+       \r
                location /api/ {\r
                        include /etc/nginx/fastcgi_params;\r
-                       if ($http_user_agent = "tilesAtHome") {\r
+                       if ($http_user_agent ~ "^tilesAtHome") {\r
+                               #deny all;\r
                                fastcgi_pass tah_backend;\r
                                break;\r
                        }\r
                }\r
 \r
-               location ~ ^/api/0\.6/(map|trackpoints|amf|amf/read|swf/trackpoints)$ {\r
-                       include /etc/nginx/fastcgi_params;\r
+               location ~ ^/api/0\.6/(map|relation|trackpoints|amf|amf/read|swf/trackpoints|trace/[0-9]+/data)$ {\r
                        fastcgi_pass bulkapi_backend;\r
                        break;\r
                }\r
                \r
                location ~ ^/api/0\.6/.*/search$ {\r
-                       include /etc/nginx/fastcgi_params;\r
                        fastcgi_pass bulkapi_backend;\r
                        break;\r
                }\r
 \r
+               location ~ ^/api/0\.6/.*/full$ {\r
+                       fastcgi_pass bulkapi_backend;\r
+                       break;\r
+               }\r
+\r
+               # fastcgi Web / Data Browser / Relations etc\r
                location ~ ^/api/0\.6/ {\r
-                       include /etc/nginx/fastcgi_params;\r
                        fastcgi_pass api_backend;\r
                        break;\r
                }\r
 \r
+               #Deny unknown API version\r
                location ~ ^/api/0\.[0-9]+/ {\r
                        deny all;\r
                }\r
+                       \r
+               #Handle Special Case Expiry\r
+               location ~ ^/(export|openlayers)/ {\r
+                       expires 7d;\r
+               }\r
+               location ~ ^/(images|javascripts|stylesheets)/ {\r
+                       expires max;\r
+               }\r
        \r
                location / {\r
-                       include /etc/nginx/fastcgi_params;\r
+                       fastcgi_index index.html;\r
                        if (!-f $request_filename) {\r
                                fastcgi_pass web_backend;\r
                                break;\r
@@ -169,12 +203,11 @@ http {
                        default_type text/x-cross-domain-policy;\r
                }\r
 \r
-               #error_page  404  /404.html;\r
-               # redirect server error pages to the static page /50x.html\r
-               error_page   500 502 503 504  /50x.html;\r
-               location = /50x.html {\r
-                       root   /var/www/nginx-default;\r
+               #error_page  404  /404.html;\r
+        # redirect server error pages to the static page /50x.html\r
+        error_page   500 502 503 504  /50x.html;\r
+        location = /50x.html {\r
+                       root   /var/www/nginx-default;\r
                }\r
        }\r
 }\r
-\r