提供静态文件句柄时Twiggy 400 Bad Request

时间:2012-04-26 20:38:13

标签: perl plack

我遇到的问题很难在较小的测试用例中重现,但这里是基本描述:

  1. 我以root身份运行Perl的Twiggy Web服务器,绑定到81端口。

  2. 我使用Plack :: App :: File->(root =>“/ my / directory”)作为默认的Web应用程序来提供来自/my/directory/...的静态内容。 p>

  3. 对于小文件,这样可以正常工作,但对于较大的文件(例如,超过30kB左右),输出会被400 Bad Request错误严重截断。例如,我正在请求/my.css,它服务于/my/directory/my.css的开头,但结尾于:

    .rowH a:link, .rowH a:visited, .rowH a:hover, .rowH a:active {
        color:#0066CC;
    }
    .rowI { background-color:#99CCFF;}
    .rowN { background-color:#FDC651;}
    .rowZ { background-color: #f5f2EA; }/*F7F5de*/
    
    .disabled { backgrouHTTP/1.0 400 Bad Request
    Content-Type: text/plain
    
  4. 我希望Twiggy能够提供整个文件,而不是像上面那样截断它。

    我尝试通过Twiggy / Server.pm查看服务文件句柄会发生什么,但我迷路了。 :(

1 个答案:

答案 0 :(得分:0)

我发现当我尝试将权限从root用户删除到另一个用户时,会导致错误。将其保留为root用户,或者在NAT重定向到端口81的无特权端口上运行解决了我的问题。