Настройка APT-репозитория
APT-репозиторий GetPageSpeed Extras содержит пакеты nginx-module-* для
поддерживаемых выпусков Debian и Ubuntu.
Бесплатная пробная версия на 30 дней
Important
Устанавливайте стандартный NGINX и подходящие модули с помощью apt-get install без
учетной записи или подписки. Настройка репозитория и apt-get update также
являются публичными.
Модули с контролем лицензии имеют 30-дневный льготный период, начинающийся с первой анонимной проверки лицензии на сервере. По истечении льготного периода поддерживаемые модули продолжают обслуживать страницы, но добавляют небольшое уведомление GetPageSpeed к HTML-ответам. Активная подписка на репозиторий GetPageSpeed, покрывающая публичный IP сервера, убирает это уведомление.
Pro-модули и NGINX-MOD требуют уровня Pro или выше с самого начала. Пакеты EDGE и Plesk сохраняют свои отдельные требования к плану. Та же бесплатная пробная установка применяется к стандартным RPM-пакетам; см. что устанавливается бесплатно.
Быстрая установка (рекомендуется)
Один .deb-пакет разворачивает связку ключей, файл источников deb822 со всеми тремя
каналами, APT pin для nginx и
вспомогательную утилиту getpagespeed-extras-channel для переключения между ними.
Проверьте его перед установкой, если предпочитаете.
curl -fsSL https://extras.getpagespeed.com/release-latest.deb \
-o /tmp/getpagespeed-extras-release.deb
sudo apt-get install -y /tmp/getpagespeed-extras-release.deb
Пакет создаёт /etc/apt/sources.list.d/getpagespeed-extras.sources с
тремя стефами deb822: stable (Enabled: yes), <codename>-mainline
(Enabled: no) и <codename>-nginx-mod (Enabled: no). Stable всегда
включён; переключайте два других с помощью утилиты:
sudo getpagespeed-extras-channel stable # only stable
sudo getpagespeed-extras-channel mainline # stable + mainline
sudo getpagespeed-extras-channel nginx-mod # stable + nginx-mod (+ APT pin)
Выберите нужный канал, затем обновите и установите:
sudo apt-get update
sudo apt-get install nginx-module-brotli
Шаг обновления загружает публичные метаданные репозитория. Пример устанавливает
nginx-module-brotli без подписки, чтобы вы могли сразу его попробовать.
См. требования к пробному периоду и плану выше, прежде чем
выбирать другие модули или переключаться на NGINX-MOD.
Tip
getpagespeed-extras-channel nginx-mod также устанавливает рекомендуемый
APT pin в /etc/apt/preferences.d/getpagespeed-nginx.pref. Если вы используете
stable или mainline и на системе есть другой источник nginx (например,
PPA ondrej или nginx.org), см. раздел
Pin GetPageSpeed nginx packages
ниже.
Справочник по каналам
| Канал | Включённые наборы | Когда использовать |
|---|---|---|
stable |
<codename> |
Продакшн-версия NGINX stable + динамические модули. |
mainline |
<codename> + <codename>-mainline |
Последняя ветка NGINX mainline (и совместимые модули). |
nginx-mod |
<codename> + <codename>-nginx-mod |
Stable nginx с патчами GetPageSpeed (upstream_check, upstream_api, расширенные единицы limit_req_rate). |
nginx-mod ABI-совместим с пакетом stable nginx, поэтому любой
пакет nginx-module-* из соответствующего stable-набора загружается с ним
без пересборки. Установка nginx-mod заменяет любой существующий пакет nginx
(он объявляет Conflicts: nginx). Поддерживаемые кодовые имена на момент запуска:
jammy, noble, resolute, bookworm.
GetPageSpeed EDGE
EDGE — отдельный закрытый продукт Ultra, который сосуществует с nginx. Его
пакеты требуют аутентифицированного доступа к репозиторию, а установленный
сервер также требует действительный токен Ultra в /etc/edge/license.jwt.
После установки связки ключей репозитория с помощью пакета быстрой установки выше включите соответствующий набор EDGE и установите:
distro=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
codename=$(lsb_release -cs)
echo "deb [signed-by=/etc/apt/keyrings/getpagespeed.gpg] https://extras.getpagespeed.com/${distro} ${codename}-edge main" \
| sudo tee /etc/apt/sources.list.d/getpagespeed-edge.list
sudo apt-get update
sudo apt-get install edge
Пакеты EDGE DEB доступны для Ubuntu jammy, noble и resolute, а также Debian bookworm, на amd64 и arm64.
Миграция из других репозиториев nginx
Если у вас уже установлен nginx из ondrej PPA, nginx.org или штатных пакетов Debian/Ubuntu:
- Выполните Быструю установку, описанную выше. Выберите
нужный канал (
mainlineдля последней версии,nginx-modдля пропатченной стабильной,stableдля обычной стабильной). - Пакет релиза (11-78 и новее) устанавливает APT pin для каждого канала, поэтому nginx от GetPageSpeed получает приоритет над другим источником. См. Закрепление пакетов nginx от GetPageSpeed.
-
Обновите и замените nginx одной командой:
sudo apt-get update sudo apt-get install nginx nginx-module-geoip2APT автоматически заменит конфликтующие пакеты (
nginx-core,nginx-common,nginx-full,nginx-extras,nginx-light) на переходные пакеты от GetPageSpeed, которые зависят от унифицированного пакетаnginx. -
Проверьте активный источник:
apt-cache policy nginxВ выводе должен быть указан
extras.getpagespeed.comс приоритетом 1001.
Ручная настройка (для опытных пользователей)
Если вы предпочитаете настроить связку ключей и список источников самостоятельно — например,
чтобы проверить каждый шаг, разместить файл источника нестандартного вида или избежать запуска
стороннего .deb — следуйте приведённой ниже ручной инструкции. Она приводит к тому же
конечному результату, только без вспомогательной утилиты getpagespeed-extras-channel.
Установка связки ключей APT
Скачайте связку ключей репозитория и разместите её в /etc/apt/keyrings:
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://extras.getpagespeed.com/deb-archive-keyring.gpg \
| sudo tee /etc/apt/keyrings/getpagespeed.gpg >/dev/null
Добавление источника APT
Вы можете либо воспользоваться интерактивным помощником ниже, либо скопировать один из статических примеров.
Интерактивный генератор
Выберите дистрибутив, кодовое имя и ветку NGINX, чтобы сгенерировать как
запись в sources.list, так и готовую к выполнению команду оболочки:
sources.list contents:
Shell command to create file:
Альтернатива: автоматическое определение дистрибутива и кодового имени
Если вы предпочитаете одну универсальную команду, которая работает в любой поддерживаемой системе
Debian или Ubuntu, можно использовать lsb_release для автоматического определения дистрибутива
и кодового имени.
Для ветки stable:
distro=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
codename=$(lsb_release -cs)
echo "deb [signed-by=/etc/apt/keyrings/getpagespeed.gpg] https://extras.getpagespeed.com/${distro} ${codename} main" \
| sudo tee /etc/apt/sources.list.d/getpagespeed-extras.list
Для ветки mainline:
echo "deb [signed-by=/etc/apt/keyrings/getpagespeed.gpg] https://extras.getpagespeed.com/${distro} ${codename}-mainline main" \
| sudo tee -a /etc/apt/sources.list.d/getpagespeed-extras.list
Для ветки nginx-mod включите как набор nginx-mod, так и
соответствующий набор stable, чтобы динамические пакеты nginx-module-* оставались устанавливаемыми
вместе с пропатченным nginx:
sudo tee /etc/apt/sources.list.d/getpagespeed-extras.list <<EOF
deb [signed-by=/etc/apt/keyrings/getpagespeed.gpg] https://extras.getpagespeed.com/${distro} ${codename}-nginx-mod main
deb [signed-by=/etc/apt/keyrings/getpagespeed.gpg] https://extras.getpagespeed.com/${distro} ${codename} main
EOF
Закрепление пакетов nginx от GetPageSpeed
Пакет релиза (11-78 и новее) устанавливает этот файл за вас. При ручной настройке, а также если у вас есть (или может позже появиться) другой источник nginx, например PPA ondrej/nginx или пакеты nginx.org, создайте его самостоятельно, чтобы пакеты GetPageSpeed всегда имели приоритет:
sudo tee /etc/apt/preferences.d/getpagespeed-nginx.pref > /dev/null <<'EOF'
Package: nginx nginx-mod nginx-common nginx-core nginx-full nginx-extras nginx-light nginx-module-* libnginx-mod-*
Pin: origin extras.getpagespeed.com
Pin-Priority: 1001
EOF
По умолчанию APT присваивает каждому репозиторию приоритет 500; при равных
приоритетах побеждает более высокая версия. Приоритет 1001 заставляет APT отдавать предпочтение этим
пакетам, даже если для этого потребуется понизить версию или заменить версии из других
репозиториев. Это важно, поскольку модули GetPageSpeed зависят от точного
ABI пакета nginx от GetPageSpeed (nginx-r<version>). Закрепление охватывает только пакеты
nginx: все остальные пакеты из этого репозитория остаются с приоритетом 500 и
конкурируют с вашим дистрибутивом по версии, а пакет, удерживаемый с помощью
apt-mark hold, остаётся удерживаемым.
Tip
Этот шаг обязателен для ручной настройки, если в системе настроен
любой другой репозиторий nginx. Проверьте с помощью
apt-cache policy nginx. Удаление файла означает отказ от закрепления; при обновлении пакетов он
не воссоздаётся, а getpagespeed-extras-channel — воссоздаёт.
После добавления источника и закрепления выполните sudo apt-get update, затем
sudo apt-get install nginx-module-<name>.
Автоматические обновления
По умолчанию unattended-upgrades устанавливает обновления только из архивов самого дистрибутива. Он ежедневно обновляет индекс GetPageSpeed, но оставляет nginx и его модули на изначально установленной версии, включая выпуски с исправлениями безопасности. Чтобы он устанавливал и обновления GetPageSpeed, добавьте drop-in файл:
sudo tee /etc/apt/apt.conf.d/52unattended-upgrades-getpagespeed > /dev/null <<'EOF'
Unattended-Upgrade::Origins-Pattern {
"origin=GetPageSpeed";
};
EOF
Шаблон охватывает все каналы GetPageSpeed: stable, mainline, NGINX-MOD и EDGE. nginx и его модули обновляются вместе одной транзакцией, а пакет заменяет работающий бинарный файл nginx без разрыва соединений и перезапускает сервис, только если это не удалось. Проверьте, что источник разрешён и что обновит следующий запуск:
sudo unattended-upgrade --dry-run --debug 2>&1 | grep -E 'Allowed origins|will be upgraded'
Если вы обновляете вручную, используйте sudo apt update && sudo apt upgrade. Избегайте apt-get upgrade: он никогда не устанавливает новые зависимости и поэтому удерживает nginx, когда выпуск добавляет новую.
Проверка пакета релиза
Пакет релиза небольшой и удобочитаемый. Перечислите все файлы и прочитайте его скрипты сопровождающего перед установкой:
curl -fsSLO https://extras.getpagespeed.com/release-latest.deb
dpkg-deb --info release-latest.deb # metadata and dependencies
dpkg-deb --contents release-latest.deb # every file it installs
dpkg-deb --control release-latest.deb ctl
cat ctl/postinst ctl/postrm # maintainer scripts
Файл sources доверяет связке ключей через Signed-By: только для этого репозитория,
а не для всей системы. Хук установки в
/etc/apt/apt.conf.d/99-getpagespeed-extras.conf выполняется перед任何 загрузкой:
когда транзакция включает пакеты из этого репозитория, он отправляет их
имена на www.getpagespeed.com и останавливается со ссылкой на подписку, если сервер
не покрыт. Сравните связку ключей с полными отпечатками на
странице ключей подписи GetPageSpeed:
gpg --show-keys --with-fingerprint /etc/apt/keyrings/deb-archive-keyring.gpg