if ($listen) {
$options->{manager} ||= "FCGI::ProcManager";
$options->{nproc} ||= 1;
+ $options->{proc_title} ||= "perl-fcgi-pm [$class]";
$self->daemon_fork() if $options->{detach};
{
n_processes => $options->{nproc},
pid_fname => $options->{pidfile},
+ pm_title => $options->{proc_title},
}
);
sub write {
my ( $self, $c, $buffer ) = @_;
+ # ->write will be called once with the body, even in a redirect (and
+ # in that case, the body is undef)
+ $buffer = '' if !defined $buffer;
+
unless ( $self->_prepared_write ) {
$self->prepare_write($c);
$self->_prepared_write(1);
=head3 Standalone server mode
FastCgiExternalServer /tmp/myapp.fcgi -socket /tmp/myapp.socket
- Alias /myapp/ /tmp/myapp/myapp.fcgi/
+ Alias /myapp/ /tmp/myapp.fcgi/
# Or, run at the root
Alias / /tmp/myapp.fcgi/
listen $port;
location / {
- fastcgi_param QUERY_STRING \$query_string;
- fastcgi_param REQUEST_METHOD \$request_method;
- fastcgi_param CONTENT_TYPE \$content_type;
- fastcgi_param CONTENT_LENGTH \$content_length;
-
- fastcgi_param PATH_INFO \$fastcgi_script_name;
- fastcgi_param SCRIPT_NAME \$fastcgi_script_name;
- fastcgi_param REQUEST_URI \$request_uri;
- fastcgi_param DOCUMENT_URI \$document_uri;
- fastcgi_param DOCUMENT_ROOT \$document_root;
- fastcgi_param SERVER_PROTOCOL \$server_protocol;
+ fastcgi_param QUERY_STRING $query_string;
+ fastcgi_param REQUEST_METHOD $request_method;
+ fastcgi_param CONTENT_TYPE $content_type;
+ fastcgi_param CONTENT_LENGTH $content_length;
+
+ fastcgi_param SCRIPT_NAME /;
+ fastcgi_param PATH_INFO $fastcgi_script_name;
+ fastcgi_param REQUEST_URI $request_uri;
+ fastcgi_param DOCUMENT_URI $document_uri;
+ fastcgi_param DOCUMENT_ROOT $document_root;
+ fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
- fastcgi_param SERVER_SOFTWARE nginx/\$nginx_version;
+ fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
- fastcgi_param REMOTE_ADDR \$remote_addr;
- fastcgi_param REMOTE_PORT \$remote_port;
- fastcgi_param SERVER_ADDR \$server_addr;
- fastcgi_param SERVER_PORT \$server_port;
- fastcgi_param SERVER_NAME \$server_name;
+ fastcgi_param REMOTE_ADDR $remote_addr;
+ fastcgi_param REMOTE_PORT $remote_port;
+ fastcgi_param SERVER_ADDR $server_addr;
+ fastcgi_param SERVER_PORT $server_port;
+ fastcgi_param SERVER_NAME $server_name;
# Adjust the socket for your applications!
fastcgi_pass unix:$docroot/myapp.socket;
=head3 Non-root configuration
-If you properly specify the PATH_INFO and SCRIPT_NAME parameters your
-application will be accessible at any path. The SCRIPT_NAME variable is the
+If you properly specify the PATH_INFO and SCRIPT_NAME parameters your
+application will be accessible at any path. The SCRIPT_NAME variable is the
prefix of your application, and PATH_INFO would be everything in addition.
As an example, if your application is rooted at /myapp, you would configure:
- fastcgi_param PATH_INFO /myapp/;
- fastcgi_param SCRIPT_NAME $fastcgi_script_name;
+ fastcgi_param SCRIPT_NAME /myapp/;
+ fastcgi_param PATH_INFO $fastcgi_script_name;
C<$fastcgi_script_name> would be "/myapp/path/of/the/action". Catalyst will
process this accordingly and setup the application base as expected.