我试图让Nginx处理我的Web服务器中的静态文件。为此,我想调整图像大小。我发现ngx_http_image_filter_module似乎正是我想要的。但是我无法正常工作。
理想情况下,我想要一个针对Docker生态系统的解决方案。在官方的nginx
图片中,我认为该库打包在/etc/nginx/modules/ngx_http_image_filter_module.so
中,并且听说了load_module
这一行:
load_module "modules/ngx_http_image_filter_module.so";
但这对我不起作用。我认为这仅适用于nginx Plus用户,而我仅使用nginx开源,对吗?
因此,看来我必须使用一些参数来手动构建nginx,但是我找不到如何清楚地做到这一点的教程。我尝试修改this Dockerfile,但没有任何帮助。
我已经在这个问题上花了一天的时间,而且确实令人沮丧,尤其是因为似乎几乎没有文档证明我希望这是一件非常有用的事情。也许使用免费的nginx根本不可行吗?我完全迷路了...
答案 0 :(得分:0)
因为没有人回答,所以我要把我的工作发送出去。
我在NodeJS + Express Web服务器上方使用nginx。在我的解决方案中,文件名的格式取决于所需的调整大小,例如abc-123-def_w100_h200.jpg
。如果文件在磁盘中可用,则nginx只是在提供文件。如果不存在,则将请求传递到节点服务器。在那里,我测试原始图像是否存在,使用Jimp对其进行修改,然后将其保存在磁盘上。然后express表达修改后的图片。
由于未删除图像,因此对具有相同参数的修改图像的所有其他请求都将通过nginx,并且速度更快。不过,我真的不知道如何实现类似于缓存的系统,这将使我无法使服务器的磁盘饱和...