]> git.openstreetmap.org Git - rails.git/blobdiff - config/nginx.conf
nginx syntax tweaks
[rails.git] / config / nginx.conf
index 04a87ebc20a47881419fd1f3ecff3cf973be5bc0..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,70 +105,109 @@ http {
                server 10.0.0.12:8005;\r
        }\r
 \r
-       server {\r
-        listen   80;\r
-        server_name  .openstreetmap.org api.openstreetmap.org;\r
-               root /home/rails/public\r
-\r
-        access_log  /var/log/nginx/openstreetmap.org.access.log;\r
-\r
-               location / {\r
-                       deny 143.210.16.160;\r
-                       allow all; \r
-               }\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
+               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
+\r
                location /wiki/ {\r
                        rewrite ^/wiki/(.*)$ http://wiki.openstreetmap.org/$1 permanent;\r
                }\r
 \r
-               if ($http_user_agent == "tilesAtHome" {\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
-                       fastcgi_pass tah_backend;\r
-                       break;\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
+               location ~ ^/api/0\.6/.*/search$ {\r
                        fastcgi_pass bulkapi_backend;\r
                        break;\r
                }\r
 \r
-               location =~ "^/api/0\.6/" {\r
-                       include /etc/nginx/fastcgi_params;\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
                        fastcgi_pass api_backend;\r
                        break;\r
                }\r
 \r
-               location =~ "^/api/0\.[0-9]+/" {\r
+               #Deny unknown API version\r
+               location ~ ^/api/0\.[0-9]+/ {\r
                        deny all;\r
                }\r
-               \r
-               if (!-f $request_filename) {\r
-                       include /etc/nginx/fastcgi_params;\r
-                       fastcgi_pass web_backend;\r
-                       break;\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
+                       fastcgi_index index.html;\r
+                       if (!-f $request_filename) {\r
+                               fastcgi_pass web_backend;\r
+                               break;\r
+                       }\r
                }\r
 \r
                location /crossdomain.xml {\r
-                       default_type text/x-cross-domain-policy\r
+                       default_type text/x-cross-domain-policy;\r
                }\r
 \r
-        #error_page  404  /404.html;\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
+                       root   /var/www/nginx-default;\r
+               }\r
        }\r
 }\r
-\r