Nginx优化图像用于反向图像代理

时间:2013-12-13 03:02:25

标签: optimization nginx proxy pagespeed

我为我的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;
    }
}

1 个答案:

答案 0 :(得分:1)

我无法回答CloudFlare的工作原理,但mod_pagespeed可以通过两种不同的方式优化图像:

  1. 在页面上静态重写HTML或CSS中的图像URL。在这种情况下,URL本身将被重写为ximage.png,qk1-v1&k2=v2.pagespeed.ic.Hash.png之类的内容。该网址将进行优化。
  2. InPlaceResourceOptimization,其中图片将从原始网址重写并提供。从文档中可以看出,此功能仅适用于mod_pagespeed的Apache版本。我们正在努力将其移植到Nginx版本。
  3. 一般来说,第一种方法更有效,这些网址是否在HTML中静态找不到?它们是在JS中动态生成的吗?