[ re-ordered (again) in a vain attempt to preserve readability ] Quoting Richard Reina <gatorreina@gmail.com>:
2016-03-08 9:02 GMT-06:00 Dave Cross <dave@dave.org.uk>:
[ re-ordered to preserve readability ]
Quoting Richard Reina <gatorreina@gmail.com>:
2016-03-08 8:41 GMT-06:00 Dave Cross <dave@dave.org.uk>:
Quoting Richard Reina <gatorreina@gmail.com>:
I have the following nginx configuration that I believe -- or at least hope
-- serves up my static files, like images ad videos, directly without invoking my dancer app. Can anyone tells me if this is the case or not, or how I can test to see if they are indeed being served directly by NGINX?
Before you go too far down this route, have you considered using Plack::Middleware::Static instead?
Hi Dave,
Thanks for the reply. I think I am already using it via starman.
use Daemon::Control;
use Cwd qw(abs_path);
Daemon::Control->new( { name => "Starman", lsb_start => '$syslog $remote_fs', lsb_stop => '$syslog', lsb_sdesc => 'Starman Short', lsb_desc => 'Starman controls the web sites.', path => abs_path($0),
program => '/usr/local/bin/starman', program_args => [ '--workers', '3', '/home/starman/mydomain/bin/app.psgi' ],
user => 'starman', group => 'starman',
pid_file => '/tmp/starman.pid', stderr_file => '/tmp/starman.err', stdout_file => '/tmp/starman.out',
fork => 2,
} )->run;
I can't see an evidence of you using Plack::Middleware::Static (or, indeed, any Plack middleware).
It would't be added to your Starman runner, it would be in your app.psgi (as described in the Pod that I linked to).
Hi Dave,
You are correct. I am obioulsy mistaken. In my development (non production) app which I run on a local machine (not digital ocean) I use plack via plackup -p 5000 bin/app.psgi. However, going through my old notes I now rememeber that I was not able to incorporate plack with my starman configuration above. I tried and for reasons that I cannot remember was unsuccessful and opted for:
program => '/usr/local/bin/starman', program_args => [ '--workers', '3', '/home/starman/Almslete/bin/app.psgi' ],
Specifically, I believe that I originally tried something like:
program => 'plackup -E deployment -s Starman', plackup -E deployment -s Starman --workers=10 -p 5001 -a bin/app.psgi
Any advice on how I can move forward on incorporating plack so that I can then incorporate Plack::Middleware::Static would of course be greatly appreciated.
I think we're talking at cross-purposes here. You don't need to be running plackup in order to use Plack middleware. You just need to be running a PSGI app - which you are, it's in your app.psgi. Assuming that you're using the app,psgi that dancer2 originally generated for you, then it will look something like this: #!/usr/bin/env perl use strict; use warnings; use FindBin; use lib "$FindBin::Bin/../lib"; use MyWebApp; MyWebApp->to_app; (Obviously substituting the name of your app for "MyWebApp".) To add Plack::Middleware::Static, you would change it to look something like this: #!/usr/bin/env perl use strict; use warnings; use FindBin; use lib "$FindBin::Bin/../lib"; use Plack::Builder; use MyWebApp; builder { enable 'Plack::Middleware::Static', path => qr{^/(javascripts|css)/} , root => './public/'; MyWebApp->to_app; }; To (attempt to) be completely clear - you can use Plack middleware with any PSGI app. You don't need to be running it under plackup. Running it under Starman (or any other PSGI server) will work just as well. Hope that's clearer. Dave...