Catalyst-Manual/lib/Catalyst/Manual/Deployment/NGINXUnit/PSGI.pod
=head1 NAME
Catalyst::Manual::Deployment::NGINXUnit::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