NAME

Plack::Handler::Feersum - plack adapter for Feersum

SYNOPSIS

plackup -s Feersum app.psgi
plackup -s Feersum --listen localhost:8080 app.psgi
plackup -s Feersum --pre-fork=4 -MMy::App -L delayed app.psgi

DESCRIPTION

This is a stub module that allows Feersum to be loaded up under plackup and other Plack tools. Set $ENV{PLACK_SERVER} to 'Feersum' or use the -s parameter to plackup to use Feersum under Plack.

Experimental Features

A --pre-fork=N parameter can be specified to put feersum into pre-forked mode where N is the number of child processes. Use -o preload_app=0 to load the app independently in each worker (default: preload before fork).

A --reuseport parameter can be specified to enable SO_REUSEPORT support for better multi-core scaling when combined with --pre-fork. Requires Linux 3.9+ or similar kernel support.

A --epoll-exclusive parameter can be specified to enable EPOLLEXCLUSIVE for reducing thundering herd in pre-fork mode. Requires Linux 4.5+. Useful with Server::Starter.

Watcher priority options --read-priority, --write-priority, and --accept-priority can be used to set libev I/O watcher priorities. Valid range is -2 (lowest) to +2 (highest), default is 0.

TLS, HTTP/2, and PROXY protocol can be configured via -o server options:

plackup -s Feersum \
  -o tls_cert_file=server.crt -o tls_key_file=server.key \
  -o h2=1 -o proxy_protocol=1 app.psgi

Note: The sni option (for virtual hosting with multiple TLS certificates) takes an array of hashes and cannot be set via -o; use Feersum::Runner directly for SNI configuration.

See Feersum::Runner for full documentation of these options.

METHODS

assign_request_handler($app)

Assigns the PSGI request handler to Feersum.

Also sets up a SIGTERM handler to call the quit() method so that Plack::Loader::Restarter will work.

SEE ALSO

Most of the functionality is in Feersum::Runner (the base class)

AUTHOR

Jeremy Stashewsky, stash@cpan.org

COPYRIGHT AND LICENSE

Copyright (C) 2010 by Jeremy Stashewsky & Socialtext Inc.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.