=head1 NAME Plack::Middleware::Proxy::ByHeader - choose remote host by header =head1 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; } =head1 DESCRIPTION Plack::Middleware::Proxy::ByHeader examines the request header to set the special environment variable I which is used by Plack::App::Proxy to proxy the request. If any of the header field names set with the option I
is present in the request and if its value matches one of the allowed values, I is set to the request uri with the hostname changed to the value of the header field. The first present header short circuts 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. =head1 ATTRIBUTES =over 4 =item header An array referece of headers to check. Defaults to the I header. =item 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. =back =head1 SEE ALSO L =head1 AUTHOR Mario Domgoergen Lmario@domgoergen.comE>