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

SYSTEMD-SOCKET-PROXYD(8)				       systemd-socket-proxyd					  SYSTEMD-SOCKET-PROXYD(8)

NAME
systemd-socket-proxyd - Bidirectionally proxy local sockets to another (possibly remote) socket. SYNOPSIS
systemd-socket-proxyd [OPTIONS...] HOST:PORT systemd-socket-proxyd [OPTIONS...] UNIX-DOMAIN-SOCKET-PATH DESCRIPTION
systemd-socket-proxyd is a generic socket-activated network socket forwarder proxy daemon for IPv4, IPv6 and UNIX stream sockets. It may be used to bi-directionally forward traffic from a local listening socket to a local or remote destination socket. One use of this tool is to provide socket activation support for services that do not natively support socket activation. On behalf of the service to activate, the proxy inherits the socket from systemd, accepts each client connection, opens a connection to a configured server for each client, and then bidirectionally forwards data between the two. This utility's behavior is similar to socat(1). The main differences for systemd-socket-proxyd are support for socket activation with "Accept=false" and an event-driven design that scales better with the number of connections. OPTIONS
The following options are understood: -h, --help Print a short help text and exit. --version Print a short version string and exit. --connections-max=, -c Sets the maximum number of simultaneous connections, defaults to 256. If the limit of concurrent connections is reached further connections will be refused. EXIT STATUS
On success, 0 is returned, a non-zero failure code otherwise. EXAMPLES
Simple Example Use two services with a dependency and no namespace isolation. Example 1. proxy-to-nginx.socket [Socket] ListenStream=80 [Install] WantedBy=sockets.target Example 2. proxy-to-nginx.service [Unit] Requires=nginx.service After=nginx.service Requires=proxy-to-nginx.socket After=proxy-to-nginx.socket [Service] ExecStart=/lib/systemd/systemd-socket-proxyd /tmp/nginx.sock PrivateTmp=yes PrivateNetwork=yes Example 3. nginx.conf [...] server { listen unix:/tmp/nginx.sock; [...] Example 4. Enabling the proxy # systemctl enable --now proxy-to-nginx.socket $ curl http://localhost:80/ Namespace Example Similar as above, but runs the socket proxy and the main service in the same private namespace, assuming that nginx.service has PrivateTmp= and PrivateNetwork= set, too. Example 5. proxy-to-nginx.socket [Socket] ListenStream=80 [Install] WantedBy=sockets.target Example 6. proxy-to-nginx.service [Unit] Requires=nginx.service After=nginx.service Requires=proxy-to-nginx.socket After=proxy-to-nginx.socket JoinsNamespaceOf=nginx.service [Service] ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:8080 PrivateTmp=yes PrivateNetwork=yes Example 7. nginx.conf [...] server { listen 8080; [...] Example 8. Enabling the proxy # systemctl enable --now proxy-to-nginx.socket $ curl http://localhost:80/ SEE ALSO
systemd(1), systemd.socket(5), systemd.service(5), systemctl(1), socat(1), nginx(1), curl(1) systemd 237 SYSTEMD-SOCKET-PROXYD(8)
Man Page