6 use Plack::Middleware::Debug;
7 use Plack::App::Directory;
9 use Plack::App::BookReader;
13 # use proxy headers for client IP address
15 my ( $app, $env ) = @_;
18 my $client_ip = $env->{HTTP_X_REAL_IP} || $env->{HTTP_X_FORWARDED_FOR};
20 my $proxy_ip = $env->{REMOTE_ADDR};
21 die "request not from authorized proxy $proxy_ip" if $proxy_ip !~ /\Q127.0.0.1\E$/;
22 warn "# rewrite $proxy_ip -> $client_ip\n";
23 $env->{REMOTE_ADDR} = $client_ip;
30 enable "Plack::Middleware::ServerStatus::Lite",
31 path => '/server-status',
32 # allow => [ '127.0.0.1', '10.60.0.0/16', '193.198.0.0/16', '0.0.0.0/32' ], # FIXME doesn't work for IPv6
33 counter_file => '/tmp/counter_file',
34 scoreboard => '/tmp/server-status';
36 enable 'Debug', panels => [
37 qw(Environment Response Timer Memory),
40 # enable 'Plack::Middleware::Static',
41 # path => qr{^/BookReader}, root => '../BookReader';
45 enable "ConditionalGET";
46 enable "Plack::Middleware::ETag", file_etag => [ "inode", "size", "mtime" ];
48 mount '/BookReader' =>
49 Plack::App::Directory->new({ root => "../BookReader" })->to_app;
52 Plack::App::BookReader->new({ root => "cache" })->to_app;
57 Plack::App::BookReader->new({ root => "/srv/dk.nsk.hr" })->to_app;
60 Plack::App::BookReader->new({ root => "/mnt/share" })->to_app;
63 Plack::App::Directory->new({ root => "NSK" })->to_app;