The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Toadfarm::Manual::Intro - Introduction to Toadfarm

DESCRIPTION

This manual aims to give an introduction to how to set up toadfarm.

Config

First you need to create a configuration file to describe when an application will be triggered. The config file is in plain Perl format and need to contain a list of application you want to run and a set of HTTP headers to trigger a given application.

Example:

  {
    apps => [
      '/home/web/project1/script/app1' => {
        'X-Request-Base' => 'http://mydomain.com/whatever',
      },
      '/home/web/project2/script/app2' => {
        'Host' => 'mydomain.com',
      },
    ],
  }

The config above will pass the request on to app1 when the "X-Request-Base" header is set to "http://mydomain.com/whatever". Or it will pass the request on to app2 if the "Host" header is set to "mydomain.com".

You can save the content of the file anywhere, but the suggested location is $HOME/.toadfarm/toadfarm.conf.

Note: There are other special fields to trigger on, besides HTTP headers. See "Apps" in Toadfarm::Manual::Config for more details.

Start Toadfarm

After you have saved the config file, you can start Toadfarm:

  $ toadfarm $HOME/.toadfarm/toadfarm.conf

After this, you should see toadfarm running and the applications can be accessed from "http://yourdomain.com:8080".

Further reading

See Toadfarm::Manual::RunningToadfarm for more command line options, and Toadfarm::Manual::Config for full list of config file options.

Listen to standard ports

Setting up an iptables rules will allow Toadfarm to listen to port 8080, while still receiving traffic on the default port. This is a good idea security wise, since it will not require Toadfarm to be started as "root".

  $ iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
  $ iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443

Note: You need to replace "eth0" with the appropriate interface.

SEE ALSO

Toadfarm::Manual::Config.

Toadfarm::Manual::RunningToadfarm.

AUTHOR

Jan Henning Thorsen - jhthorsen@cpan.org