我正在开发一个应用程序,我使用第三方服务提供的大部分照片。在构建我的第一个原型时,我直接从服务中获得了图像,即
<img src="http://thirdpartyservice.com/img/12345.jpg">
虽然生产,但每次请求时都从服务中获取图像是没有意义的。它太慢了,因为它同时为数百万用户提供服务。
我想在nginx之上构建一个薄层,根据需求提取并缓存图像24小时。因此,我不是每次都打电话给服务,而是打电话给
<img src="http://myapp.com/img?url=thirdpartyservice.com/img/12345.jpg">
如果这是第一次请求图像,它将从远程服务获取并在我的服务器上缓存24小时。
这可能与nginx有关吗?
答案 0 :(得分:0)
首先我建议不要将url格式更改为http://myapp.com/img/12345.jpg
,以防我们始终代理相同的thirdpartyservice.com。以下是基于nginx wiki的配置示例。
http {
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:10m
inactive=24h max_size=1g;
server {
location /img/ {
proxy_pass http://thirdpartyservice.com;
proxy_set_header Host thirdpartyservice.com;
proxy_cache STATIC;
proxy_cache_valid 200 1d;
proxy_cache_use_stale error timeout invalid_header updating
http_500 http_502 http_503 http_504;
}
}
}
official documentation中有很多关于缓存调整的指令。