On Thu, Aug 16, 2012 at 4:36 PM, sawyer x <xsawyerx@gmail.com> wrote:
Let me try and be more accurate and understandable.

There's a difference between "slow and horrible" and incorrect. You're not doing anything incorrectly! :)

Absolutely :) 
 
The set up you have with Plack::Handler::Apache2 is correct but not optimal and has its disadvantages. If you can do it differently (such as having persistency) it will be more worthwhile.  

The deployment document was mostly written by the community and contains practical information about situations people encountered, sometimes without any ability to change it. Our most recommended set up is Varnish <-> Nginx <-> Starman <-> Dancer. However, sometimes you're using Apache, sometimes you don't have a reverse proxy, sometimes you don't have caching up front, sometimes you can't run a Perl webserver (like Starman). These are all limitations you might face, and the deployment procedure tries to help you with that.

I understand the difference very well as I did test for months the nginx reverse proxy (it was for ruby and thin but it is the same principle) and I decided against it.  The first issue I have even with 100 users you will end up running many instances that are not used by anyone. More importantly, after several trials i realised that nginx wants to run everything as his own user and, as far as I could find, doesn't allow the permissions setting where user a won't be able to read what is on user b. It needs permission for the whole tree.

Given that some people seems to have the aim to break anything that you give them for free "just because they can" I have tried to make a setup that is as secure as possible without having to go through the virtualization route (which to me seems pointless as you do have excellent free options even with EC2).

In my setup you can run safely ruby, php and dance with the Plack::Handler::Apache2 even side by side without any major risk.  But please do not get me wrong :) I see your point completely and my experience with dancer is very limited to run some test scripts. I agree that reloading the whole up each time is less than ideal. I don't know why the Plack::Handler does that (this is not the case with Passenger as a process is in memory and users can restart the app by simply doing touch /home/me/tmp/restart.txt (which I enabled in the admin panel).

I think it is probably an issue with offering several languages at the same time vs. developing an optimal system only for dancer that, unfortunately and due to my limited knowledge in using it, seems unrealistic at this stage.  I just wonder why the Plack::Handler behaves in this "slow and horrible way". This can't be good I think because most servers will run Apache and I don't think they will be so willing to throw  it away for  Varnish <-> Nginx <-> Starman <-> Dancer :)

Thanks for your suggestions and letting me know. I really appreciate that.  I thought that installing Mod_perl and Plack::Handler was too easy to make this the best solution ! :)