Установка и подключение модуля PageSpeed для NGINX в Centos 7

PageSpeed + NGINX

PageSpeed — модуль для web-сервера Apache и Nginx от компании Google, который представляет из себя набор фильтров и позволяет значительно повысить производительность сайта.

Добавим репозиторий GetPageSpeed

[root@localhost]# yum -y install https://extras.getpagespeed.com/release-el7-latest.rpm

Установка NGINX была рассмотрена раньше

Установим модуль PageSpeed

[root@localhost]# yum -y install nginx-module-pagespeed

Откроем основной конфиг NGINX и подключим модуль

[root@localhost]# nano /etc/nginx/nginx.conf
...
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
load_module modules/ngx_pagespeed.so;
...

Подключим модуль PageSpeer во всех наших сайтах, для этого создадим файл с соответствующим содержимым

[root@localhost]# nano /etc/nginx/conf.d/pagespeed.conf
pagespeed on;
pagespeed FileCachePath /var/cache/pagespeed;
pagespeed HttpCacheCompressionLevel 0;

# HTTPS Support
pagespeed FetchHttps enable;

# PageSpeed Filters
# CSS Minification
pagespeed EnableFilters combine_css,rewrite_css;

# JS Minification
pagespeed EnableFilters combine_javascript,rewrite_javascript;

# Images Optimization
pagespeed EnableFilters lazyload_images;
pagespeed EnableFilters rewrite_images;
pagespeed EnableFilters convert_jpeg_to_progressive,convert_png_to_jpeg,convert_jpeg_to_webp,convert_to_webp_lossless;

# Remove comments from HTML
pagespeed EnableFilters remove_comments;

# Remove WHITESPACE from HTML
pagespeed EnableFilters collapse_whitespace;

Немного о параметре:

pagespeed HttpCacheCompressionLevel 0;

В своем нынешнем виде модуль PageSpeed не поддерживает внутреннее сжатие Brotli. То есть вы все равно можете использовать его вместе с модулем Brotli NGINX, но вам придется отключить внутреннее сжатие PageSpeed через.

Проверяем конфигурацию NGINX на ошибки и перезагружаем его

[root@localhost]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost]# systemctl restart nginx

Максим Макаров
У блога появился хостинг, его любезно предоставила компания Облакотека.
Облакотека - облачные сервисы для создания и управления виртуальной ИТ-инфраструктурой.
Если вам понравился мой блог и вы хотели бы видеть на нем еще больше полезных статей, большая просьба поддержать этот ресурс. Для этого достаточно кликнуть на контекстную рекламу, расположенную на сайте.
Оцените автора
IT Draft
Добавить комментарий

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

  1. Максим

    Спасибо за статью, но после попытки установки модуля с репо, получаю такую ошибку:
    »
    [root@pitp ~]# yum -y install nginx-module-pagespeed
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    * base: mirrors.datahouse.ru
    * epel: ru.download.ispsystem.com
    * extras: mirror.reconn.ru
    * ispsystem-5.228: ru.download.ispsystem.com
    * ispsystem-base: ru.download.ispsystem.com
    * updates: mirror.reconn.ru
    base | 3.6 kB 00:00
    epel | 2.9 kB 00:00
    extras | 2.9 kB 00:00
    getpagespeed-extras | 25 kB 00:00
    https://extras.getpagespeed.com/redhat/7/x86_64/repodata/repomd.xml: [Errno -1]
    Error importing repomd.xml for getpagespeed-extras: Damaged repomd.xml file
    Trying other mirror.

    One of the configured repositories failed (GetPageSpeed packages for Enterprise Linux 7 — x86_64),
    and yum doesn’t have enough cached data to continue. At this point the only
    safe thing yum can do is fail. There are a few ways to work «fix» this:

    1. Contact the upstream for the repository and get them to fix the problem.

    2. Reconfigure the baseurl/etc. for the repository, to point to a working
    upstream. This is most often useful if you are using a newer
    distribution release than is supported by the repository (and the
    packages for the previous distribution release still work).

    3. Run the command with the repository temporarily disabled
    yum —disablerepo=getpagespeed-extras …

    4. Disable the repository permanently, so yum won’t use it by default. Yum
    will then just ignore the repository until you permanently enable it
    again or use —enablerepo for temporary usage:

    yum-config-manager —disable getpagespeed-extras
    or
    subscription-manager repos —disable=getpagespeed-extras

    5. Configure the failing repository to be skipped, if it is unavailable.
    Note that yum will try to contact the repo. when it runs most commands,
    so will have to try and fail each time (and thus. yum will be be much
    slower). If it is a very temporary problem though, this is often a nice
    compromise:

    yum-config-manager —save —setopt=getpagespeed-extras.skip_if_unavailable=true

    failure: repodata/repomd.xml from getpagespeed-extras: [Errno 256] No more mirrors to try.
    https://extras.getpagespeed.com/redhat/7/x86_64/repodata/repomd.xml: [Errno -1]
    Error importing repomd.xml for getpagespeed-extras: Damaged repomd.xml file

    »
    Подскажите, пожалуйста, как это исправить?

    Ответить
    1. Максим Макаров автор

      Добрый день, с недавнего времени репозиторий стал платным, по-этому что бы подключить модуль PageSpeed, надо либо собирать nginx с этим модулем из исходников, либо искать др. репозиторий

      Ответить
      1. Максим

        Понял. Спасибо.

        Ответить