The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::Server::MultiType - Net::Server personality

SYNOPSIS

use Net::Server::MultiType;
@ISA = qw(Net::Server::MultiType);

sub process_request {
   #...code...
}

my @types = qw(PreFork Fork Single);

Net::Server::MultiType->run(server_type=>\@types);

DESCRIPTION

Please read the pod on Net::Server first. This module is a personality, or extension, or sub class, of the Net::Server module.

This personality is intended to allow for easy use of multiple Net::Server personalities. Given a list of server types, Net::Server::MultiType will require one at a time until it finds one that is installed on the system. It then adds that package to its @ISA, thus inheriting the methods of that personality.

ARGUMENTS

In addition to the command line arguments of the Net::Server base class, Net::Server::MultiType contains one other configurable parameter.

Key               Value            Default
server_type       'server_type'    'Single'
server_type

May be called many times to build up an array or possible server_types. At execution, Net::Server::MultiType will find the first available one and then inherit the methods of that personality

CONFIGURATION FILE

Net::Server::MultiType allows for the use of a configuration file to read in server parameters. The format of this conf file is simple key value pairs. Comments and white space are ignored.

 #-------------- file test.conf --------------

 ### multi type info
 ### try PreFork first, then go to Single
 server_type PreFork
 server_type Single

 ### server information
 min_servers   20
 max_servers   80
 spare_servers 10

 max_requests  1000

 ### user and group to become
 user        somebody
 group       everybody

 ### logging ?
 log_file    /var/log/server.log
 log_level   3
 pid_file    /tmp/server.pid

 ### access control
 allow       .+\.(net|com)
 allow       domain\.com
 deny        a.+

 ### background the process?
 background  1

 ### ports to bind
 host        127.0.0.1
 port        localhost:20204
 port        20205

 ### reverse lookups ?
 # reverse_lookups on

 #-------------- file test.conf --------------

PROCESS FLOW

See Net::Server

HOOKS

There are no additional hooks in Net::Server::MultiType.

TO DO

See Net::Server

AUTHOR

Paul T. Seamons paul@seamons.com

SEE ALSO

Please see also Net::Server::Fork, Net::Server::INET, Net::Server::PreFork, Net::Server::MultiType, Net::Server::Single