213 lines
4.6 KiB
Nginx Configuration File
213 lines
4.6 KiB
Nginx Configuration File
user www-data www-data;
|
|
worker_processes 2;
|
|
|
|
error_log /var/log/nginx/error.log;
|
|
pid /var/run/nginx.pid;
|
|
|
|
events {
|
|
# max clients = worker_processes * worker_connections
|
|
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;
|
|
index index.html;
|
|
access_log /var/log/nginx/openstreetmap.org.access.log;
|
|
|
|
include /etc/nginx/fastcgi_params;
|
|
|
|
#Redirect Historical Links to correct servers
|
|
location /trac/ {
|
|
rewrite ^/trac/(.*)$ http://trac.openstreetmap.org/$1 permanent;
|
|
}
|
|
|
|
location /wiki/ {
|
|
rewrite ^/wiki/(.*)$ http://wiki.openstreetmap.org/$1 permanent;
|
|
}
|
|
|
|
location / {
|
|
deny 143.210.16.160;
|
|
deny 69.89.21.73;
|
|
deny 91.89.145.219;
|
|
deny 195.190.169.111;
|
|
deny 84.237.213.10;
|
|
deny 70.22.219.249;
|
|
deny 83.226.40.87;
|
|
deny 82.178.145.87;
|
|
deny 91.78.50.134;
|
|
deny 91.77.7.139;
|
|
deny 85.126.23.106;
|
|
deny 213.171.196.166;
|
|
deny 81.151.8.64;
|
|
deny 130.226.235.215;
|
|
deny 141.99.254.253;
|
|
deny 61.228.43.32;
|
|
allow all;
|
|
}
|
|
|
|
#Handle api.openstreetmap/ -> api.openstreetmap/api/
|
|
if ($host ~* api\.(.*)) {
|
|
rewrite ^/(0\.[0-9]+)/(.*)$ /api/$1/$2
|
|
}
|
|
|
|
location /api/ {
|
|
include /etc/nginx/fastcgi_params;
|
|
if ($http_user_agent ~ "^tilesAtHome") {
|
|
#deny all;
|
|
fastcgi_pass tah_backend;
|
|
break;
|
|
}
|
|
}
|
|
|
|
location ~ ^/api/0\.6/(map|relation|trackpoints|amf|amf/read|swf/trackpoints|trace/[0-9]+/data)$ {
|
|
fastcgi_pass bulkapi_backend;
|
|
break;
|
|
}
|
|
|
|
location ~ ^/api/0\.6/.*/search$ {
|
|
fastcgi_pass bulkapi_backend;
|
|
break;
|
|
}
|
|
|
|
location ~ ^/api/0\.6/.*/full$ {
|
|
fastcgi_pass bulkapi_backend;
|
|
break;
|
|
}
|
|
|
|
# fastcgi Web / Data Browser / Relations etc
|
|
location ~ ^/api/0\.6/ {
|
|
fastcgi_pass api_backend;
|
|
break;
|
|
}
|
|
|
|
#Deny unknown API version
|
|
location ~ ^/api/0\.[0-9]+/ {
|
|
deny all;
|
|
}
|
|
|
|
#Handle Special Case Expiry
|
|
location ~ ^/(export|openlayers)/ {
|
|
expires 7d;
|
|
}
|
|
location ~ ^/(images|javascripts|stylesheets)/ {
|
|
expires max;
|
|
}
|
|
|
|
location / {
|
|
fastcgi_index index.html;
|
|
if (!-f $request_filename) {
|
|
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;
|
|
}
|
|
}
|
|
}
|