2 user www-data www-data;
4 # Use two worker processes
8 pid /var/run/nginx.pid;
11 access_log /var/log/nginx/access.log;
12 error_log /var/log/nginx/error.log;
15 # max clients = worker_processes * worker_connections
16 worker_connections 1024;
20 # Configure MIME types
21 include /etc/nginx/mime.types;
22 default_type application/octet-stream;
24 # Configure network details
29 # Configure compression (text/html is compressed by default)
33 gzip_types text/plain application/x-javascript application/x-shockwave-flash text/css;
35 #NO CGI SUPPORT IN NGINX fix stat .pl later
37 # Define fastcgi backend for web pages
38 upstream web_backend {
39 server 127.0.0.1:8000;
40 server 127.0.0.1:8001;
41 server 127.0.0.1:8002;
42 server 127.0.0.1:8003;
43 server 127.0.0.1:8004;
44 server 127.0.0.1:8005;
45 server 127.0.0.1:8006;
46 server 127.0.0.1:8007;
47 server 127.0.0.1:8008;
48 server 127.0.0.1:8009;
49 server 127.0.0.1:8010;
50 server 127.0.0.1:8011;
51 server 127.0.0.1:8012;
52 server 127.0.0.1:8013;
53 server 127.0.0.1:8014;
54 server 127.0.0.1:8015;
55 server 127.0.0.1:8016;
56 server 127.0.0.1:8017;
57 server 127.0.0.1:8018;
58 server 127.0.0.1:8019;
59 server 127.0.0.1:8020;
60 server 127.0.0.1:8021;
61 server 127.0.0.1:8022;
62 server 127.0.0.1:8023;
63 server 127.0.0.1:8024;
64 server 127.0.0.1:8025;
65 server 127.0.0.1:8026;
66 server 127.0.0.1:8027;
67 server 127.0.0.1:8028;
68 server 127.0.0.1:8029;
71 # Define fastcgi backend for api requests
72 upstream api_backend {
73 server 127.0.0.1:8030;
74 server 127.0.0.1:8031;
75 server 127.0.0.1:8032;
76 server 127.0.0.1:8033;
77 server 127.0.0.1:8034;
78 server 127.0.0.1:8035;
79 server 127.0.0.1:8036;
80 server 127.0.0.1:8037;
81 server 127.0.0.1:8038;
82 server 127.0.0.1:8039;
83 server 127.0.0.1:8040;
84 server 127.0.0.1:8041;
85 server 127.0.0.1:8042;
86 server 127.0.0.1:8043;
87 server 127.0.0.1:8044;
90 # Define fastcgi backend for bulk api requests
91 upstream bulkapi_backend {
92 server 10.0.0.10:8000;
93 server 10.0.0.11:8000;
94 server 10.0.0.12:8000;
95 server 10.0.0.10:8001;
96 server 10.0.0.11:8001;
97 server 10.0.0.12:8001;
98 server 10.0.0.10:8002;
99 server 10.0.0.11:8002;
100 server 10.0.0.12:8002;
101 server 10.0.0.10:8003;
102 server 10.0.0.11:8003;
103 server 10.0.0.12:8003;
106 # Define fastcgi backend for tiles@home requests
107 upstream tah_backend {
108 server 10.0.0.10:8004;
109 server 10.0.0.11:8004;
110 server 10.0.0.12:8004;
111 server 10.0.0.10:8005;
112 server 10.0.0.11:8005;
113 server 10.0.0.12:8005;
120 # Serve rails public files
121 root /home/rails/public;
123 # Use index.html as the index page
126 # Include fastcgi configuration
127 include /etc/nginx/fastcgi_params;
129 # Redirect trac requests for historical reasons
131 rewrite ^/trac/(.*)$ http://trac.openstreetmap.org/$1 permanent;
134 # Redirect wiki requests for historical reasons
136 rewrite ^/wiki/(.*)$ http://wiki.openstreetmap.org/$1 permanent;
139 # Placeholder for blocking abuse
144 # Map api.openstreetmap/0.n/... to api.openstreetmap/api/0.n/...
145 if ($host ~* api\.(.*)) {
146 rewrite ^/(0\.[0-9]+)/(.*)$ /api/$1/$2;
149 # Handle tiles@home requests
151 if ($http_user_agent ~ "^tilesAtHome") {
153 fastcgi_pass tah_backend;
158 # Handle bulk api requests
159 location ~ ^/api/0\.6/(map|relation|trackpoints|amf|amf/read|swf/trackpoints|trace/[0-9]+/data)$ {
160 fastcgi_pass bulkapi_backend;
164 # Send search requests to the bulk api backend
165 location ~ ^/api/0\.6/.*/search$ {
166 fastcgi_pass bulkapi_backend;
170 # Send requests for full objects to the bulk api backend
171 location ~ ^/api/0\.6/.*/full$ {
172 fastcgi_pass bulkapi_backend;
176 # Handle the remaining api requests
177 location ~ ^/api/0\.6/ {
178 fastcgi_pass api_backend;
182 # Deny old and unknown API versions
183 location ~ ^/api/0\.[0-9]+/ {
187 # Handle Special Case Expiry
188 location ~ ^/(export|openlayers)/ {
191 location ~ ^/(images|javascripts|stylesheets)/ {
195 # Send everything else to the web backend unless it exists
196 # in the rails public tree
198 fastcgi_index index.html;
200 if (!-f $request_filename) {
201 fastcgi_pass web_backend;
206 # Set the MIME type for crossdomain.xml policy files
207 # or flash will ignore it
208 location ~ /crossdomain.xml$ {
209 default_type text/x-cross-domain-policy;