++ed by:

18 PAUSE users
20 non-PAUSE users.

Karen Etheridge 🐾 🌋
and 2 contributors








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;


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;

Non-root configuration



    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;



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




Catalyst Contributors, see Catalyst.pm

