Add NGINX Unit to the list of PSGI handlers.
[catagits/Catalyst-Manual.git] / lib / Catalyst / Manual / Deployment.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 Catalyst::Manual::Deployment - Deploying Catalyst
6
7 =head1 DEPLOYMENT OPTIONS
8
9 Catalyst applications are most often deployed as a FastCGI or mod_perl
10 application (with FastCGI being the recommended option). However, as
11 Catalyst is based on the L<PSGI> specification, any web handler
12 implementing that specification can be used to run Catalyst
13 applications.
14
15 This documentation most thoroughly covers the normal and traditional deployment
16 options, but will mention alternate methods of deployment, and we welcome
17 additional documentation from people deploying Catalyst in non-standard
18 environments.
19
20 =head2 Deployment in a shared hosting environment
21
22 Almost all shared hosting environments involve deploying Catalyst as a
23 FastCGI application on Apache. You will usually want to have a set of
24 libraries specific to your application installed on your shared host.
25
26 Full details of deploying Catalyst in a shared hosting environment are at
27 L<Catalyst::Manual::Deployment::SharedHosting>.
28
29 =head2 FastCGI
30
31 FastCGI is the most common Catalyst deployment option. It is documented
32 generally in L<Catalyst::Manual::Deployment::FastCGI>, and there are specific
33 instructions for using FastCGI with common web servers below:
34
35 =head3 Apache
36
37 L<Catalyst::Manual::Deployment::Apache::FastCGI>
38
39 =head3 nginx
40
41 L<Catalyst::Manual::Deployment::nginx::FastCGI>
42
43 =head3 lighttpd
44
45 L<Catalyst::Manual::Deployment::lighttpd::FastCGI>
46
47 =head3 Microsoft IIS
48
49 L<Catalyst::Manual::Deployment::IIS::FastCGI>
50
51 =head2 mod_perl
52
53 Traditionally a common deployment option for dedicated applications,
54 mod_perl has some advantages and disadvantages over FastCGI. Use of
55 mod_perl is documented in
56 L<Catalyst::Manual::Deployment::Apache::mod_perl>.
57
58 =head2 Development Server
59
60 It is possible to deploy the Catalyst development server behind a
61 reverse proxy. This may work well for small-scale applications which are
62 in an early development phase, but which you want to be able to show to
63 people. See L<Catalyst::Manual::Deployment::DevelopmentServer>.
64
65 =head2 PSGI
66
67 Catalyst can be deployed with any PSGI-compliant handler. See L<Catalyst::PSGI>
68 for more information; a list of possible deployment servers are shown
69 below:
70
71 =head3 NGINX Unit
72
73 L<NGINX Unit|https://unit.nginx.org> is a lightweight, dynamically configurable
74 web app server that supports running PSGI-capable apps.
75
76 =head3 Starman
77
78 L<Starman> is a high-performance Perl server implementation, which is designed
79 to be used directly (rather than behind a reverse proxy). It includes HTTP/1.1
80 support, chunked requests and responses, keep-alive, and pipeline requests.
81
82 =head3 Starlet
83
84 Starlet is a standalone HTTP/1.0 server with keepā€alive support which is
85 suitable for running HTTP application servers behind a reverse proxy.
86
87 =head3 Twiggy
88
89 L<Twiggy> is a high-performance asynchronous web server. It can be used
90 in conjunction with Catalyst, but there are a number of caveats which
91 mean that it is not suitable for most deployments.
92
93 =head2 Chef
94
95 L<Chef|http://www.opscode.com/chef/> is an open-source systems integration
96 framework built specifically for automating cloud computing deployments. A
97 Cookbooks demonstrating how to deploy a Catalyst application using Chef is
98 available at L<http://community.opscode.com/cookbooks/catalyst> and
99 L<http://github.com/melezhik/cookbooks/wiki/Catalyst-cookbook-intro>.
100
101 =head1 AUTHORS
102
103 Catalyst Contributors, see Catalyst.pm
104
105 =head1 COPYRIGHT
106
107 This library is free software. You can redistribute it and/or modify it under
108 the same terms as Perl itself.
109
110 =cut
111