proxy_cache_path /tmp/nginx-cache levels=1:2 keys_zone=STATIC:100m max_size=1000m inactive=24h use_temp_path=off; server { listen 80; server_name __hostname__; root /var/www/danbooru2/current/public; index index.html; access_log /var/log/nginx/danbooru.access.log; error_log /var/log/nginx/danbooru.error.log; client_max_body_size 35m; location /stylesheets { expires max; break; } location /javascripts { expires max; break; } #location /ssd { # rewrite ^/ssd(.*)$ $1; #} location /data { # if you want to block hotlinking valid_referers none __hostname__ ~\.google\. ~\.bing\. ~\.yahoo\.; if ($invalid_referer) { return 403; } rewrite ^/data/sample/__.+?__(.+) /data/sample/$1 last; rewrite ^/data/__.+?__(.+) /data/$1 last; expires max; break; } # to enable s3 proxy location ~ ^/cached/data/(.+) { rewrite ^/cached/data/sample/__.+?__(.+) /cached/data/sample/$1; rewrite ^/cached/data/__.+?__(.+) /cached/data/$1; if ($uri ~ "/cached/data/(.+)") { set $s3_bucket 's3.amazonaws.com'; set $url_full $1; } proxy_set_header Host $s3_bucket; proxy_set_header Authorization ''; proxy_hide_header x-amz-id-2; proxy_hide_header x-amz-request-id; proxy_hide_header Set-Cookie; proxy_cache STATIC; proxy_ignore_headers Set-Cookie Cache-Control X-Accel-Expires Expires; proxy_cache_valid 200 48h; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; proxy_cache_key "$uri"; proxy_cache_min_uses 2; add_header X-Cache-Status $upstream_cache_status; proxy_pass https://$s3_bucket/BUCKET_NAME/$url_full; break; } location /maintenance.html { expires 10; } if (-f $document_root/maintenance.html) { rewrite ^(.*)$ /maintenance.html last; break; } location @app_server { proxy_pass http://app_server; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_redirect off; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-Proto http; } location / { try_files $uri @app_server; } error_page 404 /404.html; error_page 500 502 503 504 /500.html; } upstream app_server { server 127.0.0.1:9000; }