upstream derpy_upstream {
  server localhost:8080 fail_timeout=0;
}

server {
  # if you're running multiple servers, instead of "default" you should
  # put your main domain name here
  listen 80 default;

  # you could put a list of other domain names this application answers
  server_name derpibooru.org www.derpibooru.org;

  root /home/derpibooru/current/public;

  location ~ ^/img/view/(.+)/([0-9]+).*\.([A-Za-z]+)$ {
    expires max;
    add_header      Cache-Control public;
    alias "/home/derpibooru/public/system/images/thumbs/$1/$2/full.$3";
  }

  location ~ ^/img/download/(.+)/([0-9]+).*\.([A-Za-z]+)$ {
    add_header Content-Disposition "attachment";
    expires max;
    add_header      Cache-Control public;
    alias "/home/derpibooru/public/system/images/thumbs/$1/$2/full.$3";
  }

  location ~ ^/img/(.+)   {
    expires max;
    add_header Cache-Control public;
    alias /home/derpibooru/public/system/images/thumbs/$1;
  }

  location ~ ^/spns/(.+)   {
    expires max;
    add_header Cache-Control public;
    alias /home/derpibooru/public/system/images/adverts/$1;
  }

  location ~ ^/avatars/(.+)   {
    expires max;
    add_header Cache-Control public;
    alias /home/derpibooru/public/system/images/avatars/$1;
  }

  location ~ ^/media/(.+)   {
    expires max;
    add_header Cache-Control public;
    alias /home/derpibooru/public/system/images/$1;
  }

  location / {
    proxy_pass  http://derpy_upstream;
    proxy_redirect     off;

    proxy_set_header   Host             $host:$server_port;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    client_max_body_size       10m;
    client_body_buffer_size    128k;

    proxy_connect_timeout      90;
    proxy_send_timeout         90;
    proxy_read_timeout         90;

    proxy_buffer_size          4k;
    proxy_buffers              4 32k;
    proxy_busy_buffers_size    64k;
    proxy_temp_file_write_size 64k;
  }
}
