]> git.openstreetmap.org Git - rails.git/blob - config/nginx.conf
Convert to unix newlines.
[rails.git] / config / nginx.conf
1 user www-data www-data;
2 worker_processes  2;
3
4 error_log  /var/log/nginx/error.log;
5 pid        /var/run/nginx.pid;
6
7 events {
8         # max clients = worker_processes * worker_connections
9     worker_connections  1024;
10 }
11
12 http {
13     include       /etc/nginx/mime.types;
14     default_type  application/octet-stream;
15
16     #access_log  /var/log/nginx/access.log;
17
18     sendfile        on;
19     #tcp_nopush     on;
20
21     #keepalive_timeout  0;
22     keepalive_timeout  65;
23     tcp_nodelay        on;
24
25     gzip  on;
26         gzip_min_length 1100;
27         gzip_buffers 4 8k;
28         # text/html is added gzip_types by default
29         gzip_types text/plain application/x-javascript application/x-shockwave-flash text/css;
30         
31         #NO CGI SUPPORT IN NGINX fix stat .pl later
32
33         upstream web_backend {
34                 server 127.0.0.1:8000;
35                 server 127.0.0.1:8001;
36                 server 127.0.0.1:8002;
37                 server 127.0.0.1:8003;
38                 server 127.0.0.1:8004;
39                 server 127.0.0.1:8005;
40                 server 127.0.0.1:8006;
41                 server 127.0.0.1:8007;
42                 server 127.0.0.1:8008;
43                 server 127.0.0.1:8009;
44                 server 127.0.0.1:8010;
45                 server 127.0.0.1:8011;
46                 server 127.0.0.1:8012;
47                 server 127.0.0.1:8013;
48                 server 127.0.0.1:8014;
49                 server 127.0.0.1:8015;
50                 server 127.0.0.1:8016;
51                 server 127.0.0.1:8017;
52                 server 127.0.0.1:8018;
53                 server 127.0.0.1:8019;
54                 server 127.0.0.1:8020;
55                 server 127.0.0.1:8021;
56                 server 127.0.0.1:8022;
57                 server 127.0.0.1:8023;
58                 server 127.0.0.1:8024;
59                 server 127.0.0.1:8025;
60                 server 127.0.0.1:8026;
61                 server 127.0.0.1:8027;
62                 server 127.0.0.1:8028;
63                 server 127.0.0.1:8029;
64         }
65
66         upstream api_backend {
67                 server 127.0.0.1:8030;
68                 server 127.0.0.1:8031;
69                 server 127.0.0.1:8032;
70                 server 127.0.0.1:8033;
71                 server 127.0.0.1:8034;
72                 server 127.0.0.1:8035;
73                 server 127.0.0.1:8036;
74                 server 127.0.0.1:8037;
75                 server 127.0.0.1:8038;
76                 server 127.0.0.1:8039;
77                 server 127.0.0.1:8040;
78                 server 127.0.0.1:8041;
79                 server 127.0.0.1:8042;
80                 server 127.0.0.1:8043;
81                 server 127.0.0.1:8044;
82         }
83
84         upstream bulkapi_backend {
85                 server 10.0.0.10:8000;
86                 server 10.0.0.11:8000;
87                 server 10.0.0.12:8000;
88                 server 10.0.0.10:8001;
89                 server 10.0.0.11:8001;
90                 server 10.0.0.12:8001;
91                 server 10.0.0.10:8002;
92                 server 10.0.0.11:8002;
93                 server 10.0.0.12:8002;
94                 server 10.0.0.10:8003;
95                 server 10.0.0.11:8003;
96                 server 10.0.0.12:8003;
97         }
98         
99         upstream tah_backend {
100                 server 10.0.0.10:8004;
101                 server 10.0.0.11:8004;
102                 server 10.0.0.12:8004;
103                 server 10.0.0.10:8005;
104                 server 10.0.0.11:8005;
105                 server 10.0.0.12:8005;
106         }
107
108 server {
109                 listen   80;
110                 server_name  .openstreetmap.org api.openstreetmap.org;
111                 root /home/rails/public;
112                 index index.html;
113                 access_log  /var/log/nginx/openstreetmap.org.access.log;
114         
115                 include /etc/nginx/fastcgi_params;
116
117                 #Redirect Historical Links to correct servers
118                 location /trac/ {
119                         rewrite ^/trac/(.*)$ http://trac.openstreetmap.org/$1 permanent;
120                 }
121
122                 location /wiki/ {
123                         rewrite ^/wiki/(.*)$ http://wiki.openstreetmap.org/$1 permanent;
124                 }
125
126                 location / {
127                         deny 143.210.16.160;
128                         deny 69.89.21.73;
129                         deny 91.89.145.219;
130                         deny 195.190.169.111;
131                         deny 84.237.213.10;
132                         deny 70.22.219.249;
133                         deny 83.226.40.87;
134                         deny 82.178.145.87;
135                         deny 91.78.50.134;
136                         deny 91.77.7.139;
137                         deny 85.126.23.106;
138                         deny 213.171.196.166;
139                         deny 81.151.8.64;
140                         deny 130.226.235.215;
141                         deny 141.99.254.253;
142                         deny 61.228.43.32;
143                         allow all; 
144                 }
145         
146                 #Handle api.openstreetmap/ -> api.openstreetmap/api/
147                 if ($host ~* api\.(.*)) {
148                         rewrite ^/(0\.[0-9]+)/(.*)$ /api/$1/$2
149                 }
150         
151                 location /api/ {
152                         include /etc/nginx/fastcgi_params;
153                         if ($http_user_agent ~ "^tilesAtHome") {
154                                 #deny all;
155                                 fastcgi_pass tah_backend;
156                                 break;
157                         }
158                 }
159
160                 location ~ ^/api/0\.6/(map|relation|trackpoints|amf|amf/read|swf/trackpoints|trace/[0-9]+/data)$ {
161                         fastcgi_pass bulkapi_backend;
162                         break;
163                 }
164                 
165                 location ~ ^/api/0\.6/.*/search$ {
166                         fastcgi_pass bulkapi_backend;
167                         break;
168                 }
169
170                 location ~ ^/api/0\.6/.*/full$ {
171                         fastcgi_pass bulkapi_backend;
172                         break;
173                 }
174
175                 # fastcgi Web / Data Browser / Relations etc
176                 location ~ ^/api/0\.6/ {
177                         fastcgi_pass api_backend;
178                         break;
179                 }
180
181                 #Deny unknown API version
182                 location ~ ^/api/0\.[0-9]+/ {
183                         deny all;
184                 }
185                         
186                 #Handle Special Case Expiry
187                 location ~ ^/(export|openlayers)/ {
188                         expires 7d;
189                 }
190                 location ~ ^/(images|javascripts|stylesheets)/ {
191                         expires max;
192                 }
193         
194                 location / {
195                         fastcgi_index index.html;
196                         if (!-f $request_filename) {
197                                 fastcgi_pass web_backend;
198                                 break;
199                         }
200                 }
201
202                 location /crossdomain.xml {
203                         default_type text/x-cross-domain-policy;
204                 }
205
206                 #error_page  404  /404.html;
207         # redirect server error pages to the static page /50x.html
208         error_page   500 502 503 504  /50x.html;
209         location = /50x.html {
210                         root   /var/www/nginx-default;
211                 }
212         }
213 }