LINUX.ORG.RU
ФорумAdmin

NginxProxy -> Nginx + ngx_pagespeed, как правильно настроить?

 ,


1

1

Доброго времени суток уважаемые!

Имеем: 1. Nginx, на фронте, в роли ReveseProxy, HTTP/HTTPS, он же будет выполнять роль балансировщика нагрузки 2. Несколько Nginx+PHP-FPM серверов «сзади», на некоторых установлен ngx_pagespeed (серверы могут отвечать за разные сайты/сервисы/проекты)

Столкнулся с проблемой: 1. «Главный» (фронтальный) Nginx «портит» заголовки. При обращении к северу-источнику, получаем: Expires: Sat, 04 Feb 2017 08:59:15 GMT Cache-Control: max-age=2587554, public ETag: W/«PSA-aj-29OAZzvhfX»

Если посмотрим с фронтального сервера: cache-control:max-age=44190 etag: W/«PSA-aj-29OAZzvhfX» expires: Thu, 05 Jan 2017 20:01:14 GMT

Как мы видим, изменились заголовки cache-control, expires, иногда меняется E-Tag.

Вопрос. Как отключить кэширование на фронтальном сервере (лучше совсем) и изменение заголовков с его стороны? Меня интересует исключительно функции прямого прокси, кэшируется всё что нужно пусть на источниках.

Второй момент, с которым борюсь уже 2-й день - это ngx_pagespeed модуль. Который ни в какую не хочет убирать CSS-скрипт из заголовка. Я уже перепробовал все вариции фильтров которые приходили мне в голову, в том числе: extend_cache prioritize_critical_css И так далее

Ни в какую не хочет работать как просит гугл: «Оставить в шапке важные CSS, остальные убрать в конец». Кому-нибудь удалось добиться подобного эффекта?

Кэш чистил, для нужной страницы? Тут все просто на backend'е ты восставляешь expires (если у тебя у нему доступ), а на фронте уже кэшируешь.
ngx_pagespeed де не всегда имеет смысл использовать, особенно для написанных, сгенерированных вручную страниц и проще оптимизировать самому. Смысл простой, если дизаин не шибко нужен сразу, сss убирается в конец, js которые не очень нужны тоже убираются в конец и/или ставится async (ну и все с CDN). А мелкие css/js вставки вставляются в саму страницу (inline), хотя в случае с js это и не всегда может быть безопасно. Также есть всякие loadCSS, aysnc css, которые зачастую ломают его загрузку совсем (c noscript, старыми браузерами), даже если ты написал откат на простой сss, но некоторые пользуются. Pagespeed хорош для тяжелых СMS, всяких движков, но не всегда делает лучше и местами довольно тупой. Вообще да, убрать в конец самый простой способ, главное смотри за порядком и так далее, а то можешь что-нибудь сломать.

anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

Ответ

«ngx_pagespeed де не всегда имеет смысл использовать, особенно для написанных, сгенерированных вручную страниц и проще оптимизировать самому» не правда, «так» как PS оптимизирует - руками не сделаешь никак... «Кэш чистил, для нужной страницы? Тут все просто на backend'е ты восставляешь expires (если у тебя у нему доступ), а на фронте уже кэшируешь» Тут тоже есть пару проблем: 1. Дело не в кэше, а в том, что заголовки ломаются 2. Кэш на фронталке - я как раз отключить пытаюсь, а не включить...

ProUnebit
() автор топика
Ответ на: Ответ от ProUnebit

так» как PS оптимизирует - руками не сделаешь никак

Сделаешь еще лучше, если руки откуда надо Если у тебя на frontend'е, нету того, что может переписывать заголовки, то у тебя не должно быть проблем. Как костыльный вариант конечно можешь просто удалить или переписать в ручную, если не видишь в чем проблема. Это в том числе имеет смысла, когда у тебя нет контроля над backend'ом. Как-то так:

more_clear_headers 'Last-Modified' 'Expires' 'Via' 'Age';
add_header X-Frame-Options DENY;

anonymous_sama ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.