Skip to content
Massimo Melina edited this page Jun 26, 2025 · 8 revisions

HFS can work behind a reverse proxy.

First, be sure you correctly configured this in Admin-panel/Options

image

Then you need to configure your proxy. Configuration depends on what software you use, but this is an example using nginx exposing HFS under the path /files/ instead of just /. Adjust it to suit your needs.

location /files/ {
  proxy_http_version   1.1;
  keepalive_timeout    30;
  proxy_read_timeout   1h;  # allow long SSE connections (default is 1 minute)
  proxy_buffering      off;
  proxy_redirect       off;
  proxy_max_temp_file_size 0;
  proxy_set_header        X-forwarded-for $proxy_add_x_forwarded_for;  # forward IP address
  proxy_set_header        X-forwarded-host "example.com"; # this is not always necessary, but host is used by some features like "roots"
  proxy_set_header        X-Forwarded-Proto $scheme; 
  proxy_set_header        X-forwarded-prefix "/files"; # the location without final slash
  client_max_body_size    0;  # disable max size for uploads
  proxy_pass              http://127.0.0.1:80/;
}

This is enough, but you may want to configure generated links accordingly:

  • go to Admin-panel > Internet > Address
  • click the Change button
  • enter the final URL of your proxy including the location

Force HTTPS

If you want to have http-to-https redirection with a reverse-proxy, you cannot use the "Force HTTPS" feature of HFS, as this would redirect to the internal HTTPS port. You should configure your proxy to do the job, instead. Try googling.

Cloudflare

Cloudflare, when used as proxy, has a limit on upload size. To avoid this problem, configure HFS to send uploads in chunks. Find the option in Admin-panel > Options > Uploads.

image We advice setting it to 100 MB. This option is only available since HFS 0.54.0-alpha2
Clone this wiki locally