Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## This works: starman --listen 192.168.0.71:8227 --disable-keepalive --workers 10
- ## This doesn't: uwsgi --plugins http,psgi --http 192.168.0.71:8227 -M -p 10 --psgi app.psgi
- use strict;
- use local::lib;
- use lib '/home/user/user.host.com/lib';
- use Plack::App::WrapCGI;
- use Plack::Builder;
- $ENV{APP_ROOT_DIR} = "/home/user/user.host.com";
- my $tmpl_dir = "$ENV{APP_ROOT_DIR}/template";
- opendir (my $tdh, $tmpl_dir) || die;
- my @tmpls = grep {
- -f "$tmpl_dir/$_" &&
- "$tmpl_dir/$_" =~ /\.html$/ &&
- } readdir $tdh;
- closedir ($tdh);
- for my $tmpl (@tmpls) {
- chomp $tmpl;
- HTML::Template->new(
- filename => "$tmpl_dir/$tmpl",
- global_vars => 1,
- loop_context_vars => 1,
- cache => 1,
- blind_cache => 1,
- );
- }
- my $cgi_dir = "$ENV{APP_ROOT_DIR}/cgi-bin";
- opendir (my $cdh, $cgi_dir) || die;
- my @cgis = grep {
- -f "$cgi_dir/$_" &&
- } readdir $cdh;
- closedir ($cdh);
- my $builder = Plack::Builder->new();
- $builder->add_middleware(
- 'RealIP',
- header => 'X-Forwarded-For',
- trusted_proxy => [qw(192.168.0.71)]
- );
- for my $cgi (@cgis) {
- my $app = Plack::App::WrapCGI->new(
- script => "$cgi_dir/$cgi"
- )->to_app;
- $builder->mount("/cgi-bin/$cgi" => $app);
- }
- $builder->to_app;
Advertisement
Add Comment
Please, Sign In to add comment