~patrickb/cro-fcgi

FastCGI support for Cro.
Add a CHANGELOG.md
Fix up xt/server.rakutest

clone

read-only
https://git.sr.ht/~patrickb/cro-fcgi
read/write
git@git.sr.ht:~patrickb/cro-fcgi

You can also use your local clone with git send-email.

#NAME

Cro::FCGI

FastCGI support for Cro

#Synopsis

#Using a network connection

use Cro::FCGI::Server;

my $service = Cro::FCGI::Server.new(
    host => '127.0.0.1',
    port => 43210,
    application => MyCroApp
);
$service.start;

Webserver config (Apache here):

Listen 43210
<VirtualHost 127.0.0.1:43210>
    ProxyFCGIBackendType GENERIC
    ProxyPass "/" "fcgi://127.0.0.1:43211/" enablereuse=on
</VirtualHost>

#Using a Unix socket

use Cro::FCGI::Server;

my $service = Cro::FCGI::Server.new(
    socket-path => '/run/cro-fcgi/my-cro-app.sock',
    application => MyCroApp
);
$service.start;

Webserver config (Apache here):

Listen 43210
<VirtualHost 127.0.0.1:43210>
    ProxyFCGIBackendType GENERIC
    ProxyPass "/" "unix:/run/cro-fcgi/my-cro-app.sock|fcgi://127.0.0.1/" enablereuse=on
</VirtualHost>

#Description

This module provides a FastCGI frontend for Cro. It allows a simple coupling of a webserver and Cro application.

The module provides a drop-in replacement for Cro::HTTP::Server named Cro::FCGI::Server. It can be instantiated for either a network connetion or a Unix socket connection.

To start listening on a network port pass the host and port arguments.

To start listening on a Unix socket, pass the socket-path argument. Make sure the socket is readable and writable by the webserver process. Note that SELinux can possibly block access to the socket file for the webserver.

#Server and client host and port

To access the remote and local host and port of the connection of a given request, use the .socket-host, .socket-port, .peer-host and .peer-port methods of the request object, not the equally named methods of the Cro::Connection object ($request.connection.*). With FCGI, the connection represents the connection to the webserver, not the client!

#Limitations

Currently starting the application process automatically is not supported. You have to start the Cro application separately. For Apache this means you should use mod_proxy_fcgi instead of mod_fcgid.

#AUTHOR

Patrick Böker patrick.boeker@posteo.de

#License

This module is distributed under the terms of the Artistic License 2.0.