NAME

Plack::Middleware::Static::OpenFileCache - Plack::Middleware::Static with open file cache

SYNOPSIS

use Plack::Middleware::Static::OpenFileCache;

builder {
    enable "Plack::Middleware::Static",
        path => qr{^/(images|js|css)/},
        root => './htdocs/',
        max  => 100,
        expires => 60,
        cache_errors => 1;
    $app;
};

DESCRIPTION

Plack::Middleware::Static::OpenFileCache enables Plack::Middleware::Static to cache open file like nginx. This middleware cache opened file handles and their sizes and modification times for faster contents serving.

CONFIGURATIONS

max

Maximum number of items in cache. If cache is overflowed, items are removed by LRU. (100 by default)

expires

Expires seconds. 60 by default

cache_errors

If enabled, this middleware cache response if status is 40x. Disabled by default.

BENCHMARK

benchmark with ApacheBench and Monoceros

benchmark on larger file
Document Path:          /static/jquery-1.10.2.min.js
Document Length:        93107 bytes

Static                Requests per second:    1176.76 [#/sec] (mean)
Static::OpenFileCache Requests per second:    1372.09 [#/sec] (mean)
benchmark on small file
Document Path:          /static/cpanfile
Document Length:        160 bytes

Static                 Requests per second:    2018.13 [#/sec] (mean)
Static::OpenFileCache  Requests per second:    2639.02 [#/sec] (mean)

LICENSE

Copyright (C) Masahiro Nagano.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Masahiro Nagano <kazeburo@gmail.com>