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