X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Manual.git;a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FDeployment%2Fnginx%2FFastCGI.pod;h=85ec816a79bc5978331b410006e49ecd96b87a15;hp=d8e5f9a91f00441c6546b92deea4ee1e7b3f41f2;hb=19d5a2d2b0b30f9c68469cfda50022fdb9aedd74;hpb=48bee5f2f211cddf426f77060164d2abd43c9306 diff --git a/lib/Catalyst/Manual/Deployment/nginx/FastCGI.pod b/lib/Catalyst/Manual/Deployment/nginx/FastCGI.pod index d8e5f9a..85ec816 100644 --- a/lib/Catalyst/Manual/Deployment/nginx/FastCGI.pod +++ b/lib/Catalyst/Manual/Deployment/nginx/FastCGI.pod @@ -27,7 +27,7 @@ The server configuration block should look roughly like: fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; - fastcgi_param SCRIPT_NAME /; + fastcgi_param SCRIPT_NAME ''; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; @@ -52,6 +52,14 @@ It is the standard convention of nginx to include the fastcgi_params in a separate file (usually something like C) and simply include that file. +If you include the C 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; + =head2 Non-root configuration If you properly specify the PATH_INFO and SCRIPT_NAME parameters your @@ -60,8 +68,13 @@ 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 SCRIPT_NAME /myapp/; - fastcgi_param PATH_INFO $fastcgi_script_name; + 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; + } C<$fastcgi_script_name> would be "/myapp/path/of/the/action". Catalyst will process this accordingly and setup the application base as expected. @@ -69,6 +82,10 @@ 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. + =head2 SSL Make sure that nginx passes this to your fastcgi. To ensure this, you need