Guest User

Untitled

a guest
Sep 28th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. ## This works: starman --listen 192.168.0.71:8227 --disable-keepalive --workers 10
  2. ## This doesn't: uwsgi --plugins http,psgi --http 192.168.0.71:8227 -M -p 10 --psgi app.psgi
  3.  
  4. use strict;
  5. use local::lib;
  6.  
  7. use lib '/home/user/user.host.com/lib';
  8. use Plack::App::WrapCGI;
  9. use Plack::Builder;
  10.  
  11. $ENV{APP_ROOT_DIR} = "/home/user/user.host.com";
  12.  
  13. my $tmpl_dir = "$ENV{APP_ROOT_DIR}/template";
  14.  
  15. opendir (my $tdh, $tmpl_dir) || die;
  16. my @tmpls = grep {
  17. -f "$tmpl_dir/$_" &&
  18. "$tmpl_dir/$_" =~ /\.html$/ &&
  19. } readdir $tdh;
  20. closedir ($tdh);
  21.  
  22. for my $tmpl (@tmpls) {
  23. chomp $tmpl;
  24. HTML::Template->new(
  25. filename => "$tmpl_dir/$tmpl",
  26. global_vars => 1,
  27. loop_context_vars => 1,
  28. cache => 1,
  29. blind_cache => 1,
  30. );
  31. }
  32.  
  33. my $cgi_dir = "$ENV{APP_ROOT_DIR}/cgi-bin";
  34.  
  35. opendir (my $cdh, $cgi_dir) || die;
  36. my @cgis = grep {
  37. -f "$cgi_dir/$_" &&
  38. } readdir $cdh;
  39. closedir ($cdh);
  40.  
  41. my $builder = Plack::Builder->new();
  42. $builder->add_middleware(
  43. 'RealIP',
  44. header => 'X-Forwarded-For',
  45. trusted_proxy => [qw(192.168.0.71)]
  46. );
  47.  
  48. for my $cgi (@cgis) {
  49. my $app = Plack::App::WrapCGI->new(
  50. script => "$cgi_dir/$cgi"
  51. )->to_app;
  52.  
  53. $builder->mount("/cgi-bin/$cgi" => $app);
  54. }
  55.  
  56. $builder->to_app;
Advertisement
Add Comment
Please, Sign In to add comment