NAME
Plack::Middleware::Proxy::ByHeader - choose remote host by header
SYNOPSIS
my $app = builder {
enable "Proxy::ByHeader",
header => [ 'X-Taz-Proxy-To', 'Host' ];
allowed => [ 'example.com', 'www.example.com', 'www2.example.com' ];
Plack::App::Proxy->new()->to_app;
}
DESCRIPTION
Plack::Middleware::Proxy::ByHeader examines the request header to set the special environment variable plack.proxy.url which is used by Plack::App::Proxy to proxy the request.
If any of the header field names set with the option header is present in the request and if its value matches one of the allowed values, plack.proxy.url is set to the request uri with the hostname changed to the value of the header field.
The first present header short circuits the check even its value is not allowed. In this case the request is left unchanged.
If multiple headers with the same field name are present, the last value is used.
ATTRIBUTES
- header
-
An array reference of headers to check. Defaults to the HOST header.
- allowed
-
An array reference of allowed remote hosts. The hosts has to match perfectly, subdomains or wildcards are not possible. Defaults to an empty array reference which has the special meaning of allowing every remote target.
SEE ALSO
AUTHOR
Mario Domgoergen <mario@domgoergen.com>