On Tue, Mar 8, 2016 at 3:45 PM, Dave Cross <[email protected]> wrote: > > [ re-ordered (again) in a vain attempt to preserve readability ] > > Quoting Richard Reina <[email protected]>: > > 2016-03-08 9:02 GMT-06:00 Dave Cross <[email protected]>: >> >> >>> [ re-ordered to preserve readability ] >>> >>> >>> Quoting Richard Reina <[email protected]>: >>> >>> 2016-03-08 8:41 GMT-06:00 Dave Cross <[email protected]>: >>> >>>> >>>> Quoting Richard Reina <[email protected]>: >>>> >>>>> >>>>> 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? >>>>> >>>>> https://metacpan.org/pod/Plack::Middleware::Static >>>>> >>>>> >>>> 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... > > > Does anyone know the difference in speed of serving static content through Plack::Middleware::Static vs directly through Nginx? Here's one person's attempt to get closer to Nginx performance (without saying what that is:)
https://metacpan.org/pod/Plack::Middleware::Static::OpenFileCache Andrew
_______________________________________________ dancer-users mailing list [email protected] http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
