concat: Модуль HTTP конкатенации для NGINX
Установка на Debian/Ubuntu
Эти документы относятся к пакету APT nginx-module-concat, предоставляемому репозиторием GetPageSpeed Extras.
- Настройте репозиторий APT, как описано в настройке репозитория APT.
- Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-concat
Показать версии и архитектуры
| Distro | Suite | Component | Architectures |
|----------|-------------------|-------------|-----------------|
| debian | bookworm | main | amd64, arm64 |
| debian | bookworm-mainline | main | amd64, arm64 |
| debian | trixie | main | amd64, arm64 |
| debian | trixie-mainline | main | amd64, arm64 |
| ubuntu | focal | main | amd64, arm64 |
| ubuntu | focal-mainline | main | amd64, arm64 |
| ubuntu | jammy | main | amd64, arm64 |
| ubuntu | jammy-mainline | main | amd64, arm64 |
| ubuntu | noble | main | amd64, arm64 |
| ubuntu | noble-mainline | main | amd64, arm64 |
Введение
Это модуль, который поставляется вместе с
tengine, который является дистрибутивом
Nginx, используемым сайтом электронной торговли/аукциона
Taobao.com. Этот дистрибутив
содержит некоторые модули, которые новые на сцене Nginx. Модуль
ngx_http_concat является одним из них.
Модуль вдохновлен
modconcat от Apache. Он следует такому же
шаблону для включения конкатенации. Он использует два ?, вот так:
http://example.com/??style1.css,style2.css,foo/style3.css
Если присутствует третья ?, она рассматривается как строка версии. Вот так:
http://example.com/??style1.css,style2.css,foo/style3.css?v=102234
Пример конфигурации
location /static/css/ {
concat on;
concat_max_files 20;
}
location /static/js/ {
concat on;
concat_max_files 30;
}
Директивы модуля
concat on | off
по умолчанию: concat off
контекст: http, server, location
Включает конкатенацию в заданном контексте.
concat_types MIME types
по умолчанию: concat_types: text/css application/x-javascript
контекст: http, server, location
Определяет MIME типы, которые могут быть конкатенированы в заданном контексте.
concat_unique on | off
по умолчанию: concat_unique on
контекст: http, server, location
Определяет, могут ли быть конкатенированы только файлы заданного MIME типа или несколько MIME типов. Например, если установить off, то в данном контексте можно конкатенировать файлы Javascript и CSS.
Обратите внимание, что значение по умолчанию - on, что означает, что только файлы с одним и тем же
MIME типом конкатенируются в заданном контексте. Поэтому, если у вас есть CSS и
JS, вы не можете сделать что-то вроде этого:
http://example.com/static/??foo.css,bar/foobaz.js
Для этого вы должны установить concat_unique off. Это относится
к любому другому типу файлов, который вы решите конкатенировать, добавляя
соответствующий MIME тип через concat_types,
concat_max_files number
по умолчанию: concat_max_files 10
контекст: http, server, location
Определяет максимальное количество файлов, которые могут быть конкатенированы в заданном контексте. Обратите внимание, что данный URI не может быть больше, чем размер страницы вашей платформы. На Linux вы можете получить размер страницы, выполнив:
getconf PAGESIZE
Обычно это 4k. Если вы попытаетесь конкатенировать много файлов в
заданном контексте, вы можете столкнуться с этой границей. Чтобы преодолеть это ограничение, установленное ОС,
вы должны использовать
директиву large_client_header_buffers.
Установите ее на нужное вам значение.
concat_delimiter: строка
по умолчанию: НЕТ
контекст: http, server, location
Определяет разделитель между двумя файлами. Если конфигурация concat_delimiter "\n", тогда '\n' будет вставлено между 1.js и 2.js при вызове http://example.com/??1.js,2.js
concat_ignore_file_error: on | off
по умолчанию: off
контекст: http, server, location
Игнорировать ли 404 и 403 или нет.
Пометка релизов
Перусио поддерживает помеченный релиз на http://github.com/alibaba/nginx-http-concat в синхронизации с релизами Tengine. Смотрите там для последних непроиндексированных меток.
Другие модули tengine на Github
-
footer filter: позволяет добавлять дополнительные данные (разметку или нет) в конце тела запроса. Это удобно для таких вещей, как добавление временных меток или других различных вещей без необходимости изменять ваше приложение.
-
http slice: позволяет обслуживать файл кусками. Некий обратный диапазон байт. Полезно для обслуживания больших файлов, не загружая сеть.
Другие сборки
-
Как упоминалось ранее, этот модуль является частью дистрибутива
tengineNginx. Поэтому вы можете сэкономить время и просто собрать его с нуля, используяtengine, вместо официального исходного кода Nginx. -
Если вам нравится пакеты Nginx на острие технологий (из разработческих релизов) для Debian, возможно, вас заинтересует HA/HP debian пакет Nginx от Перусио с встроенной поддержкой nginx-http-concat. Инструкции по использованию репозитория и подключению пакета к стабильной установке распределения предоставлены.