---
name: "Plack::Middleware::XSendfile"
section: "3pm"
platform: "linux"
package: "libplack-perl"
version: "1.0051-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Plack::Middleware::XSendfile"
---

# Plack::Middleware::XSendfile(3pm)

Sets X-Sendfile (or a like) header for frontends

## NAME

Plack::Middleware::XSendfile - Sets X-Sendfile (or a like) header for frontends

## SYNOPSIS

```
  enable "Plack::Middleware::XSendfile";
```

## DESCRIPTION

When the body is a blessed reference with a `"path"` method, then the return value of that method is used to set the X-Sendfile header.

The body is set to an empty list, and the Content-Length header is set to 0.

If the X-Sendfile header is already set, then the body and Content-Length will be untouched.

You should use IO::File::WithPath or Plack::Util's `"set_io_path"` to add `"path"` method to an IO object in the body.

See \<http://github.com/rack/rack-contrib/blob/master/lib/rack/contrib/sendfile.rb\> for the frontend configuration.

Plack::Middleware::XSendfile does not set the Content-Type header.

## CONFIGURATION

- variation

  The header tag to use. If unset, the environment key `"plack.xsendfile.type"` will be used, then the `"HTTP_X_SENDFILE_TYPE"` header.

  Supported values are:

  - •

    `"X-Accel-Redirect"`

  - •

    `"X-Lighttpd-Send-File"`

  - •

    `"X-Sendfile"`.

  An unsupport value will log an error.

## AUTHOR

Tatsuhiko Miyagawa
