Added PSGI configuration details for NGINX Unit.
[catagits/Catalyst-Manual.git] / lib / Catalyst / Manual / Deployment / NGINX Unit / PSGI.pod
diff --git a/lib/Catalyst/Manual/Deployment/NGINX Unit/PSGI.pod b/lib/Catalyst/Manual/Deployment/NGINX Unit/PSGI.pod
new file mode 100644 (file)
index 0000000..5c4c6fb
--- /dev/null
@@ -0,0 +1,69 @@
+=head1 NAME
+
+Catalyst::Manual::Deployment::NGINX Unit::PSGI - Deploying Catalyst with NGINX Unit
+
+=head1 NGINX Unit
+
+Catalyst runs under L<NGINX Unit|https://unit.nginx.org> using PSGI.
+
+=head2 Configuration
+
+To configure a Catalyst app in NGINX Unit, upload a JSON configuration
+snippet via Unit's config API, available at an IP socket or a Unix domain
+socket (depending on Unit's L<startup settings|
+https://unit.nginx.org/installation/#installation-startup>):
+
+    # curl -X PUT --data-binary @config.json --unix-socket \
+       /path/to/control.unit.sock http://localhost/config
+
+A minimal L<configuration|https://unit.nginx.org/configuration/#perl>
+includes a listener and an application entity:
+
+    {
+        "listeners": {
+            "127.0.0.1:8080": {
+                "pass": "applications/catalyst_app"
+            }
+        },
+
+        "applications": {
+            "catalyst_app": {
+                "type": "perl",
+                "script": "/path/to/apps/myapp/myapp.psgi",
+                "user": "catalyst_user",
+                "group": "catalyst_group"
+            }
+        }
+    }
+
+The C<script> should point to your app's C<.psgi> file; C<user> and
+C<group> should have appropriate access rights.
+
+After a successful reconfiguration, you can manage your Catalyst
+app via the same L<config API|
+https://unit.nginx.org/configuration/#applications>.
+
+=over
+
+Note: make sure the app's C<.psgi> file includes the C<lib/>
+directory:
+
+    use lib 'lib';
+    use myapp;
+
+=back
+
+=head1 MORE INFO
+
+For more information on NGINX Unit, visit: L<http://unit.nginx.org>
+
+=head1 AUTHORS
+
+Catalyst Contributors, see Catalyst.pm
+
+=head1 COPYRIGHT
+
+This library is free software. You can redistribute it and/or modify it under
+the same terms as Perl itself.
+
+=cut