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

Nginx::Simple - Easy to use interface for "--with-http_perl_module"

SYNOPSIS

  nginx.conf:  
    perl_modules perl;
    perl_require Test.pm;

    server {
       listen       80;
       server_name  localhost;

       location / {
          perl Test::handler; # always enter package::handler
       }
    }

  Test.pm:
    package Test;
    use Nginx::Simple;

    # (optional) triggered before main is run
    sub init
    {
        my $self = shift;

        $self->{user} = 'stinky_pete';
    }

    # automatically dispatches here
    sub main
    {
        my $self = shift;
        
        $self->header_set('Content-Type' => 'text/html');
        $self->print('rock on!');
        $self->print("$self->{user} is using the system");
	
        $self->log('I found a rabbit...');
        
        my $something = $self->param("here");
        $self->print("I found $something...");
    }

    # (optional) triggered after main is run
    sub cleanup
    {
        my $self = shift;

        # do something?
    }

    # (optional) triggered on a server error (otherwise returns a normal 500 error)
    sub error
    {
        my $self = shift;
        my $error = shift;

        $self->status(500);
        $self->print("oh, uh, there is an error! ($error)");
    }
    

METHODS

$self->server

Returns the nginx server object.

$self->uri

Returns the uri.

$self->filename

Returns the path filename.

$self->request_method

Returns the request_method.

$self->remote_addr

Returns the remote_addr.

$self->header_in

Return value of header_in.

$self->print(...)

Output via http.

$self->auto_header

Returns true if set, otherwise args 1 sets true and 0 false.

$self->dispatching

Returns true if we're dispatching actively.

$self->header_set('header_type', 'value')

Set output header.

$self->header('content-type')

Set content type.

$self->headers

Returns hashref of headers.

$self->location('url')

Redirect to a url.

$self->status(...)

Set output status... (200, 404, etc...) If no argument given, returns status.

$self->param(...)

Return a parameter passed via CGI--works like CGI::param.

$self->param_hash

Return a friendly hashref of CGI parameters.

$self->request_body & $self->request

Returns request body.

$self->args

Returns args.

process_auto_header

Process the autoheader.

error_stack

Returns the "error stack" as an array.

get_error

Returns error as string.

$self->unescape

Unscape HTTP URI encoding.

$self->cookie

Cookie methods:

$self->cookie->set(-name => 'foo', -value => 'bar');
my %cookies = $self->cookie->read;

$self->elapsed_time

Returns elapsed time since initial dispatch.

Author

Michael J. Flickinger, <mjflick@gnu.org>

Copyright & License

You may distribute under the terms of either the GNU General Public License or the Artistic License.