我有一个网站,允许用户将照片提供(上传)到相册。
为了保护照片,它们存储在/public_html
以外的文件夹中,并通过名为PHPThumb的脚本显示在页面中,该脚本显示质量较低的照片的小尺寸版本(因为可以上传分辨率照片),还允许用户将他们的水印添加到照片中。
我的问题是,有时当特定专辑(页面)有大量流量时,某些照片不会显示,或者整个页面完全显示500 Internal Server Error
(即使我使用分页和仅显示每页40张照片)。在网站回来之前需要几秒钟,或者有时几分钟。
我认为使用缩略图库会减轻负载,因为服务器不必发送整个高分辨率照片,而只发送调整大小的版本。但情况似乎并非如此。
我正在使用共享的虚拟主机软件包,虽然我知道我的网络应用程序不建议使用共享,但在决定升级我的虚拟主机软件包之前,我想探索改进网站的其他任何选项。
有关阻止500
错误的任何建议吗?
考虑到上述设置,也会接受好的网络主机的建议。 (我对服务器管理不太熟悉。)
答案 0 :(得分:0)
这些缩略图不是在每次请求时动态生成的,而是缓存的,对吧?如果没有,你可以从那里开始。
将原始图像存储在公共目录之外是有意义的,但您可以考虑将缩略图存储在公共目录中,以便您可以直接提供它们而无需处理。
还要确保在提供这些缩略图时发送正确的缓存标头。考虑到缩略图是较大版本的小型副本,它不会改变,因此您可以将失效日期设置得很远。
3.1但是,在您的情况下,您让用户在缩略图上添加水印,这样您就可以根据该水印缓存缩略图。您可以散列图像名称+水印并获取缩略图名称。如果水印会改变,缩略图名称也会不同,所以"远远超前"缓存过期标题不会咬你。