Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Plack::App::Proxy(3)  User Contributed Perl Documentation Plack::App::Proxy(3)

NAME
       Plack::App::Proxy - proxy requests

SYNOPSIS
	 use Plack::Builder;

	 # proxy all requests for /static to 127.0.0.1:80
	 builder {
	     mount "/static" =>	Plack::App::Proxy->new(remote => "http://127.0.0.1:80")->to_app;
	 };

	 # Call	from other app
	 my $proxy = Plack::App::Proxy->new->to_app;
	 my $app = sub {
	     my	$env = shift;
	     ...
	     $env->{'plack.proxy.url'} = $url;
	     $proxy->($env);
	 };

DESCRIPTION
       Plack::App::Proxy is a middleware-aware proxy application for Plack.

OPTIONS
       remote
	     Plack::App::Proxy->new(remote => 'http://perl.org')->to_app;

	   Specifies the base remote URL to proxy requests to.

	     builder {
		 mount "/example",
		     Plack::App::Proxy->new(remote => 'http://example.com/app/foo')->to_app;
	     };

	   This	proxies	incoming requests for "/example/bar" proxied to
	   "http://example.com/app/foo/bar".

       preserve_host_header
	   Preserves the original Host header, which is	useful when you	do
	   reverse proxying to the internal hosts.

       backend
	   The HTTP backend to use. This dist comes with "LWP" and
	   "AnyEvent::HTTP" backends. "AnyEvent::HTTP" is the default if no
	   backend is specified.

       options
	   The options for the HTTP backend instance.

MIDDLEWARE CONFIGURATIONS
       This application	is just	like a normal PSGI application and is
       middleware aware, which means you can modify proxy requests (and
       responses) using	Plack middleware stack.

       It also supports	the following special environment variables:

       plack.proxy.url
	   Overrides the proxy request URL.

       plack.proxy.remote
	   Overrides the base URL path to proxy	to.

       For example, the	following builder code allows you to proxy all GET
       requests	for .png paths to the lolcat image (yes, a silly example) but
       proxies to the internal host otherwise.

	 my $mw	= sub {
	     my	$app = shift;
	     sub {
		 my $env = shift;
		 if ($env->{REQUEST_METHOD} eq 'GET' &&	$env->{PATH_INFO} =~ /\.png$/) {
		     $env->{'plack.proxy.url'} = 'http://lolcat.example.com/lol.png';
		 }
		 $app->($env);
	     };
	 };

	 use Plack::Builder;

	 builder {
	     enable $mw;
	     Plack::App::Proxy->new(remote => 'http://10.0.0.1:8080')->to_app;
	 };

AUTHOR
       Lee Aylward

       Masahiro	Honma

       Tatsuhiko Miyagawa

       Jesse Luehrs

LICENSE
       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

SEE ALSO
       Plack::Builder

perl v5.32.0			  2013-08-31		  Plack::App::Proxy(3)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | MIDDLEWARE CONFIGURATIONS | AUTHOR | LICENSE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Plack::App::Proxy&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help