Нгинк

Како омогућити компресију Бротли у Нгинк-у

Како омогућити компресију Бротли у Нгинк-у

Компресија Бротли је техника компресије генеричке намене која је широко подржана у читачима. Упоредив је са тренутно доступним методама компресије, јер нуди 20-26% бољи однос компресије. Ипак, није добро уколико веб сервер не шаље компримоване ресурсе засноване на текст са Бротлијевим алгоритмом.

У овом чланку ћемо научити како компресија функционише на серверу и зашто је корисна? Такође ћемо научити да инсталирамо Нгинк сервер и натераћемо наш сервер да пружа компримоване датотеке Бротли.

Позадина

Технике / алгоритми компресије побољшавају перформансе веб странице смањењем величине садржаја. Стога компримованим подацима треба мало оптерећења и времена преноса. Међутим, има своју цену. Сервери користе пуно рачунарских ресурса да би обезбедили бољу стопу компресије. Отуда, то боље, скупо. Дакле, додаје се велики напор за побољшање формата компресије уз коришћење минималних циклуса процесора.

До сада је гзипован највећи потенцијални формат компресије. Недавно је гзип замењен новим алгоритмом компресије познатим као Бротли. То је напредни алгоритам компресије који се састоји од Хуффмановог кодирања, алгоритма Л77 и моделирања контекста. Супротно томе, Гзип је изграђен на алгоритму Дефлате.

Формат компресије без губитака, који је дизајнирао Гоогле, уско је повезан са форматом компресије испухавањем. Обе методе компресије користе клизне прозоре за референцирање уназад. Величина клизног прозора Бротли креће се од 1 КБ до 16 МБ. Супротно томе, Гзип има фиксну величину прозора од 32 КБ. То значи да је Бротлијев прозор 512 пута већи од прозрачног прозора, што није релевантно јер се текстуалне датотеке веће од 32 КБ ретко налазе на веб серверима.

Компатибилност компресије сервера је важна

Кад год преузмемо датотеку из прегледача, прегледач тражи од сервера какву компресију подржава кроз заглавље. На пример, ако прегледач подржава гзип и испухати да се декомпресује. Додаће ове опције у свој Прихвати-кодирај, заглавље, тј.е.,

Аццепт-Енцодинг = ”дефлате, гзип”

Стога их прегледачи који не подржавају ове формате неће укључити у заглавље. Када сервер одговори садржајем, он заглављу саопштава прегледачу о формату компресије, Кодирање садржаја. Дакле, ако подржава гзип, заглавље изгледа овако:

Цонтент-Енцодинг = ”гзип”

Заглавља прегледача попут Фирефока који подржавају компресију Бротли и веб сервера који имају инсталиран модул Бротли како би изгледали овако:

Аццепт-Енцодинг = ”дефлате, гзип, бр”
Цонтент-Енцодинг = ”гзип, бр”

Стога, ако прегледач користи најбољи формат компресије, а веб сервер не, то није добро, јер веб сервер неће вратити датотеке са жељеним алгоритмом компресије. Због тога је важно инсталирати модул компресије за веб сервер.

Инсталација сервера

Пре него што кренемо напред са Бротли конфигурацијом, поставићемо наш Нгинк сервер. Пре тога судо апт-гет упдате вашу Убунту дистрибуцију и укуцајте следеће наредбе на вашем басх терминалу.

[заштићен е-поштом]: ~ $ судо апт-гет упдате
[заштићен е-поштом]: ~ $ судо апт-гет инсталл нгинк -и
[заштићен е-поштом]: ~ $ судо сервице нгинк старт

Да бисмо омогућили Бротлијеву компресију у Нгинку, саставићемо наш .дакле модули према нашим детаљима верзије Нгинк-а. Као што је приказано, уношењем следеће наредбе излази Нгинк верзија:

[заштићен е-поштом]: ~ $ нгинк -в
нгинк верзија: нгинк / 1.18.0 (Убунту)

Користити вгет наредба, заједно са детаљима верзије нгинк-а, за преузимање изворног кода са веб странице Нгинк.

[заштићен е-поштом]: ~ $ вгет хттпс: // нгинк.орг / довнлоад / нгинк-1.18.0.катран.гз
--2021-02-07 02: 57: 33-- хттпс: // нгинк.орг / довнлоад / нгинк-1.18.0.катран.гз
Решавање нгинк-а.орг (нгинк.орг)… 3.125.197.172, 52.58.199.22, 2а05: д014: едб: 5702 :: 6,…
Повезивање са нгинк-ом.орг (нгинк.орг) | 3.125.197.172 |: 443… повезано.
Послат је ХТТП захтев, чека одговор ... 200 ОК
Дужина: 1039530 (1015К) [апликација / октетни ток]
Чување у: 'нгинк-1.18.0.катран.гз '
нгинк-1.18.0.катран.гз 100% [============================================== ====================>] 1015К 220КБ / с за 4.8с
2021-02-07 02:57:38 (212 КБ / с) - 'нгинк-1.18.0.катран.гз 'сачувано [1039530/1039530]

Користићемо овај изворни код за компајлирање *.па бинарне датотеке за Бротлијеву компресију. Сада извуците датотеку помоћу следеће наредбе.

[заштићена е-поштом]: ~ $ тар кзф нгинк-1.18.0.катран.гз

Конфигурација модула Бротли

Сада је Гоогле објавио модул Бротли за Нгинк. Ми ћемо гит-клонирати модул из Гоогле спремишта.

[заштићен е-поштом]: ~ $ гит цлоне хттпс: // гитхуб.цом / гоогле / нгк_бротли --рекурзивно.

Ми ћемо цд Инто тхе нгинк-1.18.0 директоријум за конфигурисање динамичког модула Бротли.

[заштићена е-поштом]: ~ $ цд нгинк-1.18.0 /
[заштићен е-поштом]: ~ $ судо ./ цонфигуре --витх-цомпат --адд-динамиц-модуле =… / нгк_бротли

Напомена: Током конфигурисања можете добити следећу грешку

./ цонфигуре: грешка: за модул ХТТП преписивања потребна је ПЦРЕ библиотека.
Можете онемогућити модул помоћу --витхоут-хттп_реврите_модуле
или инсталирајте ПЦРЕ библиотеку у систем или изградите ПЦРЕ библиотеку
статички од извора са нгинк-ом коришћењем --витх-пцре = опција.

У том случају покрените следећу команду да бисте инсталирали пцре библиотеку

[заштићен е-поштом]: ~ $ судо апт-гет инсталл либпцре3-дев -и

Компилација модула

Користићемо направити наредба за креирање а модула директоријум унутар нгинк-1.18.0 директоријума.

[заштићен е-поштом]: ~ $ судо маке модуле

Ми користимо цп наредба за копирање нгк_хттп_бротли *.тако датотеке са нгинк-1.18.0 / објс директоријум у фолдер модула.

[заштићена е-поштом]: ~ $ цд / нгинк-1.18.0 / објс /
[заштићена е-поштом]: ~ $ судо цп  нгк_хттп_бротли *.тако / уср / схаре / нгинк / модулес

Сада наведите садржај датотека помоћу лс команда. Приметићете да се састоји од две различите датотеке модула, тј.е.:

[заштићен е-поштом]: ~ $ лс нгк_хттп_бротли *.тако
нгк_хттп_бротли_филтер_модуле.тако
нгк_хттп_бротли_статиц_модуле.тако
  • Редовни модул Бротли: Тхе нгк_хттп_бротли_филтер_модуле.тако да модул компресује све датотеке у ходу, па стога захтева више рачунарских ресурса
  • Статички модул Бротли: Тхе нгк_хттп_бротли_статиц_модуле.тако му модул омогућава послуживање претходно компримованих статичких датотека, што значи да захтева мање ресурса.

Сада помоћу омиљеног уређивача отворите / етц / нгинк / нгинк.цонф датотеку за додавање модула за учитавање Бротли за започињање Бротли конфигурације укључивањем следећих редова:

[заштићен е-поштом]: ~ $ судо вим / етц / нгинк / нгинк.цонф
# Учитај одељак модула
лоад_модуле "модули / нгк_хттп_бротли_филтер_модуле.тако";
лоад_модуле "модули / нгк_хттп_бротли_статиц_модуле.тако";

Такође ћемо укључити путање фасцикли за конфигурацију / етц / нгинк / цонф.д / *.цонф

и / уср / схаре / нгинк / модулес / *.цонф у горњој датотеци као што су:

хттп
# Укључи директоријуме за конфигурацију
укључују / етц / нгинк / цонф.д / *.цонф;
укључују / уср / схаре / нгинк / модулес / *.цонф;

Да бисте додали Бротли конфигурацију, отворите / етц / нгинк / цонф.д / бротли.цонф

датотека у вим едитор и омогућити Бротли постављањем следећих конфигурационих директива:

бротли на;
бротли_статиц он;
бротли_цомп_левел 6;
бротли_типес апликација / рсс + кмл апликација / кхтмл + кмл
тект / цсс тект / обичан;

бротли офф | он”Вредност омогућава или онемогућава динамичку или тренутну компресију садржаја.

Тхе 'бротли_ статиц он ' омогућава Нгинк серверу да провери да ли су претходно компресоване датотеке са .бр проширења постоје или не. Ову поставку такође можемо претворити у опцију ван или увек. Тхе увек вредност омогућава серверу да пошаље унапред компресовани садржај без потврде да ли га прегледач подржава или не. Будући да Бротли троши ресурсе, овај модул је најприкладнији за смањење уских грла.

бротли_цомп_левел 6”Директива поставља ниво квалитета динамичке компресије на 6. Може се кретати од 0 до 11.

И на крају, омогућите динамичко сажимање за одређене МИМЕ типове, док се текст / хтмл одговори увек компримују. Подразумевана синтакса за ову директиву је бротли_типес [миме типе]. Можете пронаћи више о конфигурацијској директиви на Гитхуб-у.

Сачувајте промене, поново покрените Нгинк услугу тако што ћете откуцати „Судо сервис рестарт нгинк“ и све је готово.

Закључак

Након промена, приметићете нека очигледна побољшања у показатељима перформанси. Међутим, долази са благим недостатком повећаног оптерећења процесора у вршним временима. Да бисте избегли такве ситуације, припазите на употребу процесора; ако достигне 100% редовно, можемо користити многе опције према нашим жељама, као што су приказивање унапред компримованог или статичног садржаја, смањење нивоа компресије и искључивање компресије у лету, међу многим.

Инсталирајте најновију ОпенРА Стратеги Гаме на Убунту Линук
ОпенРА је Либре / Фрее Реал Тиме стратешки механизам који ствара ране Вествоод игре попут класичне Цомманд & Цонкуер: Ред Алерт. Дистрибуирани модови ...
Инсталирајте најновији Долпхин Емулатор за Гамецубе & Вии на Линук
Долпхин Емулатор вам омогућава да играте изабране игре Гамецубе и Вии на Линук Персонал Цомпутерс (ПЦ). Долпхин Емулатор је слободно доступан и емула...
Како се користи ГамеЦонкуерор Цхеат Енгине у Линуку
Чланак покрива водич о коришћењу ГамеЦонкуерор варалице у Линуку. Многи корисници који играју игре на Виндовс-у често користе апликацију „Цхеат Енгине...