2013-12-13 4 views
0

У меня установлен обратный прокси-образ для моего Nginx, и он работает. Однако я хотел бы использовать оптимизированную версию изображения.Оптимизация изображения Nginx для прокси-сервера обратного изображения

Исходный URL (будучи проксированным) фактически содержит параметры запроса без расширений изображений, таких как http://external.server.com/asp/service?k1=v1&k2=v2. Я попробовал трюк Cloudflare или pagespeed, чтобы рассматривать его как изображение и надеюсь, что один из них может оптимизировать изображение. Таким образом, мой новый URL-адрес прокси теперь 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

Я не могу отвечать за то, как работает CloudFlare, но mod_pagespeed может оптимизировать изображения двумя различными способами:

  1. Rewrite URL-изображения, найденные в HTML или CSS статически на странице. В этом случае сам URL будет переписан на что-то вроде ximage.png,qk1-v1&k2=v2.pagespeed.ic.Hash.png. И этот URL-адрес будет оптимизирован.
  2. InPlaceResourceOptimization, где изображение переписывается и подается с исходного URL-адреса. Как видно из документации, эта функция доступна только для версии Apache mod_pagespeed. Мы работаем над его переносом на версии Nginx.

В общем, первый метод более эффективен, эти URL-адреса не найдены статически в HTML? Динамически генерируются ли они в JS?

+0

Эти URL-адреса вызываются JS для использования в качестве графических элементов изображения, поэтому похоже, что второй вариант более применим, однако для Apache :(У вас есть ссылка на любой связанный проект портирования, который можно использовать Может быть, для меня сейчас нужно создать статический HTML-код, который охватывает все плитки изображений, поэтому скорость страницы может быть оптимизирована заранее или наоборот, оптимизирует ли страницы изображения, найденные в динамически генерируемом HTML. (Так что я могу получить html, включая Сначала нужно оптимизировать URL-адрес, а затем получить оптимизированное изображение?) – Andy

+0

О, похоже, Nginx поддерживает исправление ресурсов на месте сейчас! Https://github.com/pagespeed/ngx_pagespeed/issues/42 – Andy

+0

Как-то я могу оптимизировать пустой (все прозрачный) файл png, но не те, у кого есть некоторый контент. Проверяя статистику, он говорит о намеренном уклонении, но не уверен, почему он упал. – Andy

Смежные вопросы