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=be18780d5101d5c9aebf9e79cc28470153bf2857;hb=19d5a2d2b0b30f9c68469cfda50022fdb9aedd74;hpb=5abded07e91219302e0536d98c9a0d5e5fd58e13 diff --git a/lib/Catalyst/Manual/Deployment/nginx/FastCGI.pod b/lib/Catalyst/Manual/Deployment/nginx/FastCGI.pod index be18780..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; @@ -42,7 +42,7 @@ The server configuration block should look roughly like: 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; } @@ -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,19 @@ 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 +the following in your nginx config for the SSL vhost: + + fastcgi_param HTTPS on + +=head1 MORE INFO + For more information on nginx, visit: L