daemon off;

user app;
worker_processes auto;
pid /run/nginx.pid;

events {
  worker_connections 1024;
}

http {

  # Basic settings
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 300;
  types_hash_max_size 2048;
  server_tokens off;
  server_names_hash_bucket_size 64;
  server_name_in_redirect off;
  client_body_in_file_only clean;
  client_body_buffer_size 32K;
  client_max_body_size 100M;
  send_timeout 300s;
  large_client_header_buffers 4 8k;

  # Mime type handling
  include /etc/nginx/mime.types;
  default_type application/octet-stream;

  # Default security headers
  add_header X-Frame-Options SAMEORIGIN;
  add_header X-Content-Type-Options nosniff;
  add_header X-XSS-Protection "1; mode=block";

  # Logging
  log_format host '$remote_addr - $remote_user [$time_local] "[$host] $request" $status $bytes_sent "$http_referer" "$http_user_agent" "$gzip_ratio"';
  access_log /dev/stdout;
  error_log stderr;

  # GZIP
  gzip on;
  gzip_disable "msie6";
  gzip_vary on;
  gzip_proxied any;
  gzip_comp_level 6;
  gzip_buffers 16 8k;
  gzip_http_version 1.1;
  gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    # Site
    server {

        # Ports
        listen 4848;
        listen [::]:4848;

        # Web root
        root /docs;
        index index.html;

        # Proxy
        proxy_buffers 32 4k;
        proxy_set_header Connection "";

        # Server domain name
        server_name _;

        # Authentication and proxying
        location / {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header Host localhost;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_redirect off;
            proxy_read_timeout 59;
            proxy_connect_timeout 10;
        }

    }

}
