php – 测试X-Sendfile头是否正常工作
我正在寻找一种方法来确认X-Sendfile是否正确处理由脚本(
PHP)返回给Web服务器的请求.图像正在正确提供,但我想我会在curl请求中看到标题.
$curl -I http://blog2.stageserver.net/wp-includes/ms-files.php?file=/2011/05/amos-lee-feature.jpg HTTP/1.1 200 OK Date: Wed,04 Jan 2012 17:19:45 GMT Server: Cherokee/1.2.100 (Arch Linux) ETag: "4dd2e306=9da0" Last-Modified: Tue,17 May 2011 21:05:10 GMT Content-Type: image/jpeg Content-Length: 40352 X-Powered-By: PHP/5.3.8 Content-Disposition: inline; filename="amos-lee-feature.jpg" 组态 在FastCGI中使用PHP-FPM 5.3.8的Cherokee 1.2.100: WordPress网络/ WPMU 3.3.1: header( 'X-Sendfile: ' . $file ); exit; 我已经确认上面的代码片段是在exit()之前添加一个用于处置的附加标题来执行的;呼叫. Content-Disposition与curl结果一起出现,而不是最初在ms-files.php代码中.添加的代码是: 研究 我有: >进行配置更改后重新启动php-fpm / cherokee守护程序. > php.net/manual/en/function.readfile.php >确认[切诺基支持] [5]并测试[有和没有] [6]压缩,即使我认为它不适用,因为我的图像服务正确.我还从lighttpd帖子中发现了一个可疑的类似问题. > * cherokee-project.com / doc / other_goodies.html * >在SO上找到一个模糊,可能表示标题被剥离 > stackoverflow.com/questions/7296642/django-understanding-x-sendfile >测试上面的标题与curl,wget,Firefox,Chrome和web-sniffer.net是一致的. 问题 >当X-Sendfile工作正常或是否被删除时,它是否会出现在标题中? 我在这里寻找一般的故障排除技巧或信息,不一定特定于PHP / Cherokee. 更新 我找到了一种在测试或沙箱环境中确认X-Sendfile或X-Accel-Redirect的合适方法:禁用X-Sendfile并检查标头. 在Cherokee中禁用允许X-Sendfile: $curl -I http://blog2.stageserver.net/wp-includes/ms-files.php?file=/2011/05/amos-lee-feature.jpg HTTP/1.1 200 OK Date: Fri,06 Jan 2012 15:34:49 GMT Server: Cherokee/1.2.101 (Ubuntu) X-Powered-By: PHP/5.3.6-13ubuntu3.3 Content-Type: image/jpeg X-Sendfile: /srv/http/wordpress/wp-content/blogs.dir/2/files/2011/05/amos-lee-feature.jpg Content-Length: 40352 图像不会在浏览器中加载,但您可以看到标题存在.重新启用允许X-Sendfile后,图像加载,您可以确信X-Sendfile正在运行.
根据
source on github X-Sendfile头文件将被剥离.
如果我正确地浏览文件,那么只有在调试模式下编译它才会成功. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |