Toadfarm::Manual::Config - Config format for Toadfarm apps
This manual gives in-depth information about the config options that can be given to an application.
The basic structure of the application is shown below. This document covers the %config part given to "mount" in Toadfarm::Manual::DSL.
%config
#!/usr/bin/perl use Toadfarm -init; mount "MyApp" => \%config; start;
The mount function is used to define the available apps that Toadfarm should serve.
The %config is either HTTP headers to trigger on or "Special fields".
The config example below contain all the special fields that you can use and a list of example headers to filter on. Each key (except "config") is used to filter the incoming request, and ALL the specified values must match for the request to get passed on to a given application.
mount "Some::Application" => { # headers "Host" => qr{^(www.)?example.com$}, "User-Agent" => qr{curl}, "X-Request-Base" => "http://example.com/whatever", # special fields config => {some_key => "value"}, local_port => 8080, mount_point => "/myapp", remote_address => "127.0.0.1", };
Example HTTP request that will get sent to "Some::Application":
-- Connect (http:example.com:8080) -- Client >>> Server (http://example.com/myapp) GET /myapp HTTP/1.1 Connection: keep-alive Content-Length: 0 Accept-Encoding: gzip Host: example.com User-Agent: curl/7.32.0 X-Request-Base: http://example.com/whatever
So if "User-Agent" is "Mojolicious (Perl)" instead, but all the other headers match, then the request will NOT be passed on to "Some::Application".
Got difficulties getting a request through to an application? Try removing rules until the request gets through.
Fields that are defined in the list below are special fields.
config => \%hash
This config param will override any config parameters already known in the target application. It will also generate a temporary config file which is available as MOJO_CONFIG|Mojolicious::Plugin::Config/file to the target application.
MOJO_CONFIG|Mojolicious::Plugin::Config/file
Note: These config params are set after startup() is called. (This will hopefully be changed/fixed in future release of Toadfarm)
local_port => $str|$regex
Used to only accept requests on a given port access.
mount_point => $str
The default mount point is "/". Setting this to "/foo" will only make the application accessible under "http://domain.com/foo".
remote_address => $str|$regex
Used to only accept from a given address access.
X-Request-Base => $str
This header will also set request base url when this rule match. This is the same funtionality that is provided by Mojolicious::Plugin::RequestBase.
Additional special fields might be added, but they will always be in lower case.
Jan Henning Thorsen - jhthorsen@cpan.org
jhthorsen@cpan.org
To install Toadfarm, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Toadfarm
CPAN shell
perl -MCPAN -e shell install Toadfarm
For more information on module installation, please visit the detailed CPAN module installation guide.