NAME

    Plack::Middleware::Proxy::Requests - Forward proxy server

SYNOPSIS

        # In app.psgi
        use Plack::Builder;
        use Plack::App::Proxy;
    
        builder {
            enable "Proxy::Connect";
            enable "Proxy::AddVia";
            enable "Proxy::Requests";
            Plack::App::Proxy->new->to_app;
        };
    
        # From shell
        plackup -s Twiggy -E Proxy -e 'enable q{AccessLog}' app.psgi
    
        # or
        twiggy -MPlack::App::Proxy \
                -e 'enable q{AccessLog}; enable q{Proxy::Connect}; \
                    enable q{Proxy::AddVia}; enable q{Proxy::Requests}; \
                    Plack::App::Proxy->new->to_app'

DESCRIPTION

    This module handles HTTP requests as a forward proxy server.

    Its job is to set a plack.proxy.url environment variable based on
    REQUEST_URI variable.

    The HTTP responses from the Internet might be invalid. In that case it
    is required to run the server without Plack::Middleware::Lint module.
    This module is started by default and disabled if -E or
    --no-default-middleware option is used when starting plackup script.
    Note that this disables also Plack::Middleware::AccessLog so it has to
    be enabled explicitly if needed.

    The default server Plack::Server::PSGI alias Standalone can hang up on
    the stalled connection. It is better to run a proxy server with
    Starlet, Starman or Twiggy.

SEE ALSO

    Plack, Plack::App::Proxy, Plack::Middleware::Proxy::Connect,
    Plack::Middleware::Proxy::AddVia, Starlet, Starman, Twiggy.

BUGS

    If you find the bug or want to implement new features, please report it
    at
    https://github.com/dex4er/perl-Plack-Middleware-Proxy-Requests/issues

    The code repository is available at
    http://github.com/dex4er/perl-Plack-Middleware-Proxy-Requests

AUTHOR

    Piotr Roszatycki <dexter@cpan.org>

LICENSE

    Copyright (c) 2012-2013, 2023 Piotr Roszatycki <dexter@cpan.org>.

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

    See http://dev.perl.org/licenses/artistic.html