leedo/Plack-App-Proxy
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
master
Could not load branches
Nothing to show
Could not load tags
Nothing to show
{{ refName }}
default
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
- Open with GitHub Desktop
- Download ZIP
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
NAME Plack::App::Proxy - proxy requests SYNOPSIS use Plack::Builder; use Plack::App::Proxy; # 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
About
a streaming capable proxy for Plack
Resources
Stars
Watchers
Forks
Packages 0
No packages published