Re: nginx 1.18.0 ест всю память и swap на Ubuntu Server 20.04.1 LTS
    Dmitry Volyntsev 
    xeioex на nginx.com
       
    Вт Сен  1 04:56:37 UTC 2020
    
    
  
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