我为我的Nginx设置了一个图像反向代理,它可以工作。但是,我想提供图像的优化版本。
原始网址(代理)实际上包含没有图片扩展名的查询参数,例如http://external.server.com/asp/service?k1=v1&k2=v2
。我尝试使用Cloudflare或pagespeed将其视为图像,并希望其中一个可以优化图像。所以我的新代理网址现在是http://mydomain.com/some/path/image.png?k1=v1&k2=v2
。 (下面的配置)
然而,它似乎没有用。 CF和pagespeed似乎只是优化来自服务html的引用静态图像,而不是任何动态请求任何url的静态图像。这是真的?我如何设置所以我能够提供反向图像代理以使用Nginx提供优化的图像?万分感谢。
server {
listen 8080;
proxy_cache CACHE;
pagespeed on;
location /some/path/image.png {
proxy_pass http://external.server.com/asp/service;
}
}
答案 0 :(得分:1)
我无法回答CloudFlare的工作原理,但mod_pagespeed
可以通过两种不同的方式优化图像:
ximage.png,qk1-v1&k2=v2.pagespeed.ic.Hash.png
之类的内容。该网址将进行优化。InPlaceResourceOptimization
,其中图片将从原始网址重写并提供。从文档中可以看出,此功能仅适用于mod_pagespeed
的Apache版本。我们正在努力将其移植到Nginx版本。一般来说,第一种方法更有效,这些网址是否在HTML中静态找不到?它们是在JS中动态生成的吗?