Re: nginx 1.18.0 ест всю память и swap на Ubuntu Server 20.04.1 LTS

Alexey Galygin mif на me.com
Вт Сен 1 05:59:52 UTC 2020


nginx из официального докер образа 1.18.0
njs шла в комплекте и отдельно не ставилась — 0.4.2
вообще никак не вмешивались…

за альтернативу кода спасибо!
сейчас думаем, как бы аккуратно выпилить эти артефакты совсем

> On 1 Sep 2020, at 07:56, Dmitry Volyntsev <xeioex на nginx.com> wrote:
> 
> 
> On 01.09.2020 00:42, Alexey Galygin wrote:
>> 
>> но на всякий случай, может есть версия как-то это нативно переписать для конфига без всяких языков и модулей?
>> какие есть рекомендации? (совсем выкидывать всё же стрёмно…)
> 
> А подскажите свою версию njs (Если njs ставился из официальных пакетов, будет доступен бинарник njs, и тогда версию можно узнать так `njs -v`).
> 
> > оказалось проблема в NJS части, какой-то баг там именно в связке 1.18.0 + Ubuntu 20.04
> 
> менялась ли версия njs при апгрейде? Если нет, единственное что пока приходит на ум это изменения в версии libpcre между дистрибутивами.
> 
> Как воркараунд можно попробовать переписать эти функции без использования глобальных регулярок (наиболее вероятное место проблемы).
> 
> function unescapeURI(r) {
>         return r.uri.replace(/%20/g, " ");
> }
> 
> ->
> 
> 1)
> // идентична по поведению исходной функции
> function unescapeURI(r) {
>         return r.uri.split(/%20/).join(" ");
> }
> 
> 2)
> // более стандартный метод, но заменит все %-encoded комбинации
> https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/decodeURI
> function unescapeURI(r) {
>         return decodeURI(r.uri);
> }
> 
> 
> function escapeURI(r) {
>         return r.uri.replace(/\s/g, "%20").replace(/_/g, "%5F");
> }
> 
> ->
> 
> 1)
> // идентична по поведению исходной функции
> function escapeURI(r) {
>         return r.uri.split(" ").join("%20").split("_").join("%5F");
> }
> 
> 2)
> // более стандартный метод, но заменит все %-encoded комбинации
> https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/encodeURI
> function escapeURI(r) {
>         return encodeURI(r.uri);
> }
> 



Подробная информация о списке рассылки nginx-ru