user www-data; worker_processes auto; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## 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; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; #include /etc/nginx/sites-enabled/*; server { listen {{ server_port }}; server_name {{ server_name }}; client_max_body_size 500m; root {{ site_root }}; index {{ site_index }}; {%- for l in locations %} location {{ l["uri_match"] }} { {{ l["directive"] }}; } {%- endfor %} location @default1 { index ../index.html; } location @default2 { index ../../index.html; } location @default3 { index ../../../index.html; } # Use to upload files for download location {{ upload_path_config }} { # Pass altered request body to this location upload_pass @return_config; # Store files to this directory upload_resumable on; upload_state_store /tmp/state; upload_store {{ site_root }}{{ upload_path_config }}; # Allow uploaded files to be read only by user #upload_store_access user:r; # Set specified fields in request body upload_set_form_field $upload_field_name.name "$upload_file_name"; upload_set_form_field $upload_field_name.content_type "$upload_content_type"; upload_set_form_field $upload_field_name.path "$upload_tmp_path"; upload_set_form_field $upload_field_name.server "$server_name"; # Inform backend about hash and size of a file upload_aggregate_form_field "$upload_field_name.md5" "$upload_file_md5"; upload_aggregate_form_field "$upload_field_name.size" "$upload_file_size"; upload_pass_form_field "^submit$|^description$"; upload_cleanup 400 404 499 500-505; } location @return_config { proxy_pass http://clover-controller.clover-system:80; proxy_http_version 1.1; } # Use to upload files for performance testing location {{ upload_path_test }} { upload_pass @return_path; # Store files to this directory upload_resumable on; upload_state_store /tmp/state; upload_store {{ site_root }}{{ upload_path_test }}; upload_pass_form_field "^submit$|^description$"; upload_cleanup 400 404 499 500-505; } location @return_path { return 204; } } }