Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

catalyst::manual::deployment::nginx::fastcgi(3pm) [debian man page]

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

NAME
Catalyst::Manual::Deployment::nginx::FastCGI - Deploying Catalyst with nginx 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. Configuration 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; Non-root configuration 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. 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 MORE INFO
For more information on nginx, visit: <http://nginx.net> AUTHORS
Catalyst Contributors, see Catalyst.pm COPYRIGHT
This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2012-05-03 Catalyst::Manual::Deployment::nginx::FastCGI(3pm)

Check Out this Related Man Page

FCGIWRAP(8)						      System Manager's Manual						       FCGIWRAP(8)

NAME
fcgiwrap - serve CGI applications over FastCGI SYNOPSIS
fcgiwrap [OPTIONS] DESCRIPTION
fcgiwrap is a simple server for running CGI applications over FastCGI. It hopes to provide clean CGI support to Nginx (and other web servers that may need it). OPTIONS
-c number Number of fcgiwrap processes to prefork. -s socket_url A URL for the listen socket to bind to. By default fcgiwrap expects a listen socket to be passed on file descriptor 0, matching the FastCGI convention. The recommended way to deploy fcgiwrap is to run it under a process manager that takes care of opening the socket. However, for simple configurations and one-off tests this option may be used. Valid socket_urls include unix:/path/to/unix/socket, tcp:dot.ted.qu.ad:port and tcp6:[ipv6_addr]:port. -h Show a help message and exit. ENVIRONMENT
When running, fcgiwrap evaluates these environment variables set by the web server calling an fcgi-script. The variables DOCUMENT_ROOT and SCRIPT_NAME will be concatenated and the resulting executable run as CGI script wrapped as FastCGI, with the remainder after the script name available as PATH_INFO. To disable PATH_INFO mangling, set up your web server to pass SCRIPT_FILENAME, which should contain the com- plete path to the script. Then PATH_INFO will not be modified. DOCUMENT_ROOT directory which the script resides in SCRIPT_NAME actual executable SCRIPT_FILENAME complete path to CGI script. When set, overrides DOCUMENT_ROOT and SCRIPT_NAME EXAMPLE
The fastest way to see fcgiwrap do something is to launch it at the command line like this: fcgiwrap -s unix:/var/run/fcgiwrap.sock Apart from potential permission problems etc., it should be ready to accept FastCGI requests and run CGI scripts. Most probably you will want to launch fcgiwrap by spawn-fcgi using a configuration like this: FCGI_SOCKET=/var/run/fcgiwrap.sock FCGI_PROGRAM=/usr/sbin/fcgiwrap FCGI_USER=nginx FCGI_GROUP=www FCGI_EXTRA_OPTIONS="-M 0700" ALLOWED_ENV="PATH" Nginx can be configured to have the arbitrary CGI cgit run as FastCGI as follows: location / { fastcgi_param DOCUMENT_ROOT /var/www/localhost/htdocs/cgit/; fastcgi_param SCRIPT_NAME cgit; fastcgi_pass unix:/var/run/fastcgi.sock; } AUTHOR
fcgiwrap was written by Grzegorz Nosek <root@localdomain.pl> with contributions by W-Mark Kubacki <wmark@hurrikane.de>. This manual page was written by Jordi Mallach <jordi@debian.org> (with contributions by Grzegorz Nosek) for the Debian project (and may be used by others). Jun 3, 2010 FCGIWRAP(8)
Man Page