GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Catalyst::Manual::Deployment::nginx::FastCGI(3) User Contributed Perl Documentation Catalyst::Manual::Deployment::nginx::FastCGI(3)

Catalyst::Manual::Deployment::nginx::FastCGI - Deploying Catalyst with nginx

Catalyst runs under nginx via FastCGI in a similar fashion as the lighttpd standalone server.

nginx does not have its own internal FastCGI process manager, so you must run the FastCGI service separately.

To configure nginx, you must configure the FastCGI parameters and also the socket your FastCGI daemon is listening on. It can be either a TCP socket or a Unix file socket.

The server configuration block should look roughly like:

    server {
        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  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  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;
        }
    }

It is the standard convention of nginx to include the fastcgi_params in a separate file (usually something like "/etc/nginx/fastcgi_params") and simply include that file.

If you include the "/etc/nginx/fastcgi_params" that comes with your distribution, e.g. Debian, you need to adjust a couple of parameters for PSGI compatibility, use something like this:

        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_NAME '';
        fastcgi_param PATH_INFO   $fastcgi_script_name;

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:

    rewrite ^/myapp$ /myapp/ permanent;
    location /myapp/ {
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_NAME /myapp/;
        fastcgi_param PATH_INFO   $fastcgi_script_name;
        fastcgi_pass unix:/tmp/myapp.socket;
    }

$fastcgi_script_name would be "/myapp/path/of/the/action". Catalyst will process this accordingly and setup the application base as expected.

This behavior is somewhat different from Apache and lighttpd, but is still functional.

Note that the rewrite may not be needed with newer versions of nginx, and the paths must be exactly as specified - the trailing slash in the location block and the SCRIPT_NAME are important.

Make sure that nginx passes this to your fastcgi. To ensure this, you need the following in your nginx config for the SSL vhost:

    fastcgi_param  HTTPS on

For more information on nginx, visit: <https://nginx.net>

Catalyst Contributors, see Catalyst.pm

This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.
2020-04-22 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.