X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FDeployment%2Fnginx%2FFastCGI.pod;h=53cd42cf7e25ac607f00b7c312d9b0122320eefb;hb=a18ada2a7c8fc02b6bbd5d2155a41b5a9b0d3662;hp=7a93ab3a735ebe5915ba0cf7bb14c0911afc9002;hpb=0191b4351578d840cba62c5eb24a7f51238f6076;p=catagits%2FCatalyst-Manual.git diff --git a/lib/Catalyst/Manual/Deployment/nginx/FastCGI.pod b/lib/Catalyst/Manual/Deployment/nginx/FastCGI.pod index 7a93ab3..53cd42c 100644 --- a/lib/Catalyst/Manual/Deployment/nginx/FastCGI.pod +++ b/lib/Catalyst/Manual/Deployment/nginx/FastCGI.pod @@ -5,7 +5,7 @@ Catalyst::Manual::Deployment::nginx::FastCGI - Deploying Catalyst with nginx =head1 nginx Catalyst runs under nginx via FastCGI in a similar fashion as the lighttpd -standalone server as described above. +standalone server. nginx does not have its own internal FastCGI process manager, so you must run the FastCGI service separately. @@ -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,17 +68,35 @@ 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. -This behavior is somewhat different than Apache and Lighttpd, but is still +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 +L =head1 AUTHORS