Статьи

PageSpeed ​​Proxy: Часть 1

PageSpeed ​​Module от Google, доступный для Apache и nginx , является быстрым решением для повышения производительности сети веб-приложений. В качестве бонуса, если мы настроим nginx в качестве прокси-сервера, то он также может служить решением для веб-ускорения.

PageSpeedРастет число фильтров оптимизации PageSpeed , от простого минимизации CSS до сложной компрессии изображений . Если вы уже используете Apache или nginx, модуль PageSpeed ​​относительно прост в использовании .

Другой вариант использования PageSpeed ​​- это прокси-сервер, который вы используете для ежедневного просмотра, например, что @ jedisct1 реализовал через прокси-модуль Apache . В этой записи блога я показываю альтернативную настройку, используя вместо этого nginx, в основном, следуя шагам, описанным в проекте ngx_pagespeed .

Вместо того, чтобы делать вещи вручную, вы можете просто использовать автоматическую настройку, используя Vagrant с VirtualBox . Просто клонируйте Git-репозиторий pagespeed-proxy, и тогда вам нужно только запустить:

vagrant up

Для этого эксперимента виртуальная машина основана на 64-битной Ubuntu 12.04 LTS ( Precise Pangolin ). Если вы настроите конфигурацию внутри Vagrantfileблока Vagrant на базе CentOS, например, из коллекции Opscode Bento , он также должен работать нормально. Если вы предпочитаете доверять своей собственной виртуальной машине, вы можете создать блок Vagrant с нуля автоматически, ознакомьтесь с моим предыдущим постом в блоге об использовании упаковщика для создания блоков Vagrant .

Сценарий инициализации коробки обеспечивает этап загрузки последней версии nginx и компилирует ее с помощью модуля Google PageSpeed. Когда он будет готов, сценарий также запустит nginx в качестве прямого прокси на порту 8000 (этот порт также пересылается и, следовательно, прокси также доступен для хост-машины). Прокси-сервер будет запускать два фильтра оптимизации (в качестве отправной точки): удаление комментариев HTML и минимизация JavaScript , это можно проверить , посмотрев предоставленный файл конфигурации nginx.conf:

http {
    server {
        listen 8000;
        server_name localhost;
        location / {
            resolver 8.8.8.8;
            proxy_pass http://$http_host$uri$is_args$args;
        }
        pagespeed on;
        pagespeed RewriteLevel PassThrough;
        pagespeed EnableFilters remove_comments,rewrite_javascript;
        pagespeed FileCachePath /home/vagrant/cache;
    }
}

Чтобы проверить работу оптимизирующего прокси-сервера, выполните эти две команды (на хост-компьютере) и просмотрите различные результаты:

curl http://ariya.github.io/js/random/index.html
curl -x localhost:8000 http://ariya.github.io/js/random/index.html

Второй канал направляет исходный контент HTML через включенные фильтры оптимизации, удаление комментариев и переписывание скриптов, что приводит к уменьшению размера страницы. Это определенно просто иллюстрация, не стесняйтесь поиграть с рядом других фильтров PageSpeed и наблюдать за последствиями.

Obviously, it is also possible to setup your web browser to use the proxy at localhost:8000. When looking at the same URL given above, it will result in something like the following screenshot. Again, compare it with the case where you view the page without using the proxy.

optimized

For a more practical usage of the proxy, stay tuned!