从理论上讲:
example.com/picture.jpeg
直接链接到文件
example.com/some-endpoint/picture.jpeg
链接到php脚本,该脚本读取文件并将其作为内容返回。
执行这样的操作是否会受到严重的性能损失?为什么要这样做,我想进行一些身份验证检查,以确保例如用户被授权查看文件/ mofify标头等...
因此,除了运行PHP框架来为文件提供服务的明显开销之外……这会大大降低速度吗?
原因是我不明白为什么用PHP而不是用Apache读取文件会更慢..还是我错过了什么?
答案 0 :(得分:1)
涉及的过程越多,性能遭受的损失就越大。因此,您可以期望一些会对性能造成影响,但是您需要测量多少,然后确定对您的身份验证而言是否值得。根据我的经验,成本是微不足道的。
一件事,不要忘记扩展性能:当您捆绑PHP进程流文件时,您正在减少可用于处理其他请求的进程总数。
如果您担心规模和性能,请尽一切努力在上游提供此内容。例如:
在PHP中实现它时,请确保使用禁用输出缓冲的类似readfile
之类的东西。否则,您将通过内容的大小来增加Web服务进程的大小,这可能会导致内存不足异常。