njs 0.4.0 рд░рд┐рд▓реАрдЬ. рд░реЕрдореНрдмрд▓рд░рдиреЗ Nginx рд╡рд┐рд░реБрджреНрдз рдлреМрдЬрджрд╛рд░реА рдЦрдЯрд▓рд╛ рд╕рдорд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпрд╛рдЪрд┐рдХрд╛ рдкрд╛рдард╡рд▓реА

Nginx рдкреНрд░рдХрд▓реНрдк рд╡рд┐рдХрд╛рд╕рдХ рдкреНрд░рдХрд╛рд╢рд┐рдд JavaScript рднрд╛рд╖рд╛ рджреБрднрд╛рд╖реНрдпрд╛рдЪреЗ рдкреНрд░рдХрд╛рд╢рди - рдПрдирдЬреЗрдПрд╕ 0.4.0. njs рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ ECMAScript рдорд╛рдирдХреЗ рд▓рд╛рдЧреВ рдХрд░рддреЛ рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреАрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░реВрди рд╡рд┐рдирдВрддреАрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рдЪреА Nginx рдЪреА рдХреНрд╖рдорддрд╛ рд╡рд╛рдврд╡рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ. рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЧрддрд┐рдорд╛рдирдкрдгреЗ рдкреНрд░рддрд┐рд╕рд╛рдж рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╡рд┐рдирдВрддреА/рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдд рдмрджрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рдВрд╡рд╛ рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреАрд▓ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рд╕рд╛рдареА рддреНрд╡рд░реАрдд рд╕реНрдЯрдм рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рдЧрдд рддрд░реНрдХрд╢рд╛рд╕реНрддреНрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд.

рдирд╡реАрди рдкреНрд░рдХрд╛рд╢рди рдирд┐рд░реНрджреЗрд╢ рд▓рд╛рдЧреВ рдХрд░рддреЗ js_import рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдХрд┐рдВрд╡рд╛ рд╕реНрдерд╛рди рд╣рдБрдбрд▓рд░реНрд╕рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ JavaScript рдореЙрдбреНрдпреВрд▓реНрд╕ рдЖрдпрд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, foo.js рдореЙрдбреНрдпреБрд▓рдордзреНрдпреЗ рддреБрдореНрд╣реА рдлрдВрдХреНрд╢рди рдмрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реВ рд╢рдХрддрд╛, рдЬреНрдпрд╛рд▓рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рд░реНрдЧрд╛рдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рдХреЙрд▓ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ:

foo.js:

рдлрдВрдХреНрд╢рди рдмрд╛рд░(рдЖрд░) {
r.return(200);
}

рдбреАрдлреЙрд▓реНрдЯ {bar} рдирд┐рд░реНрдпрд╛рдд рдХрд░рд╛;

nginx.conf:

js_import foo.js;

рд╕реНрдерд╛рди / {
js_content foo.bar;
}

рд╡рд╕реНрддреБ рдордзреНрдпреЗ r.headersOut рдПрдХрд╛рдзрд┐рдХ рдореВрд▓реНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╢реАрд░реНрд╖рд▓реЗрдЦрд╛рдВрд╕рд╛рдареА рдЬреЛрдбрд▓реЗрд▓реЗ рд╕рдорд░реНрдерди, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде:

рдХрд╛рд░реНрдп рд╕рд╛рдордЧреНрд░реА(r) {
r.headersOut['Set-Cookie'] = [
'foo = 111; рдХрдорд╛рд▓-рд╡рдп = 3600; рдорд╛рд░реНрдЧ=/',
рдмрд╛рд░ = qqq; рдХрдорд╛рд▓-рд╡рдп = 86400; рдорд╛рд░реНрдЧ=/'
];

r.return(200);
}

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рд╕рдВрджреЗрд╢ рд░реЕрдореНрдмрд▓рд░ рдЧреНрд░реБрдк рдХрдВрдкрдиреА рдмрджреНрджрд▓ рджрд┐рд╢рд╛ рд╕рдВрдкреБрд╖реНрдЯрд╛рдд рдЖрдгрдгреНрдпрд╛рд╕рд╛рдареА рдЕрдзрд┐рдХреГрдд рдпрд╛рдЪрд┐рдХрд╛ рддрдкрд╛рд╕ рдЕрдзрд┐рдХрд╛рд▒реНрдпрд╛рдВрдХрдбреЗ рдлреМрдЬрджрд╛рд░реА рдЦрдЯрд▓рд╛Nginx рд╢реА рд╕рдВрдмрдВрдзрд┐рдд. рдлрд╛рд╢реАрдЪрд╛ рднрд╛рдЧ рдореНрд╣рдгреВрди рд╣реА рдпрд╛рдЪрд┐рдХрд╛ рдкрд╛рдард╡рдгреНрдпрд╛рдд рдЖрд▓реА рд╣реЛрддреА рдЬрд╛рд░реА рдбрд┐рд╕реЗрдВрдмрд░рдордзреНрдпреЗ, рд░реЕрдореНрдмрд▓рд░ рдЧреНрд░реБрдкрдЪреНрдпрд╛ рд╕рдВрдЪрд╛рд▓рдХ рдордВрдбрд│рд╛рдиреЗ Nginx рд╕реЛрдмрддрдЪреА рдХрд╛рд░реНрдпрд╡рд╛рд╣реА рдирд╛рдЧрд░реА рдХрд╛рдпрджрд╛ рдХреНрд╖реЗрддреНрд░рд╛рдд рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рдпрд╛рд╢рд┐рд╡рд╛рдп, рд░реЕрдореНрдмрд▓рд░рдЪреНрдпрд╛ рд╡рддреАрдиреЗ рдХрд╛рдо рдХрд░рдгрд╛рд▒реНрдпрд╛ рдХрд╛рдпрджреНрдпрд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгрд╛рд▒реНрдпрд╛ рдПрдЬрдиреНрд╕реАрд╢реА рд╕рдВрдкрд░реНрдХ рд╕рд╛рдзрдгрд╛рд▒реНрдпрд╛ Lynwood Investments CY Ltd рдпрд╛ рдХрд╛рдпрджреЗрд╢реАрд░ рдлрд░реНрдорд╕реЛрдмрддрдЪрд╛ рдХрд░рд╛рд░ рд╕рдВрдкреБрд╖реНрдЯрд╛рдд рдЖрдгрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ.

рд╡рд┐рд╢реЗрд╖ рдореНрд╣рдгрдЬреЗ, рдХрд░рд╛рд░ рд╕рдВрдкреБрд╖реНрдЯрд╛рдд рдЖрдгрд▓реНрдпрд╛рдирдВрддрд░рд╣реА, Lynwood Investments CY Ltd рдиреЗ NGINX рдкреНрд░рдХрд░рдгрд╛рдд рдиреБрдХрд╕рд╛рди рдЖрдгрд┐ рднрд░рдкрд╛рдИ рд╕рд┐рджреНрдз рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рддреАрдиреЗ рдЖрдгрд┐ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╣рд┐рддрд╛рд╕рд╛рдареА рд░рд╛рдЦреВрди рдареЗрд╡рд▓рд╛, рдкрд░рдВрддреБ рд░реЕрдореНрдмрд▓рд░рдЪреНрдпрд╛ рд╡рддреАрдиреЗ рдХреЛрдгрддрд╛рд╣реА рд╡реНрдпрд╡рд╕рд╛рдп рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЕрдзрд┐рдХрд╛рд░ рдирд╛рд╣реА. рдЧрдЯ. рджреНрд╡рд╛рд░реЗ рдорд╛рд╣рд┐рддреА рд╕реЗрдВрдЯрд░ рдлреЙрд░ рдбрд┐рдЬрд┐рдЯрд▓ рд░рд╛рдЗрдЯреНрд╕рдЪреНрдпрд╛ рд╡рдХрд┐рд▓рд╛рдХрдбреВрди, рд░реЕрдореНрдмрд▓рд░рдЪреА рдпрд╛рдЪрд┐рдХрд╛ рд╡реИрдз рдирд╛рд╣реА, рдХрд╛рд░рдг рдлреМрдЬрджрд╛рд░реА рдЦрдЯрд▓рд╛ рдХреЗрд╡рд│ рдкрдХреНрд╖рд╛рдВрдЪреНрдпрд╛ рд╕рд╛рдордВрдЬрд╕реНрдпрд╛рдЪреНрдпрд╛ рдЖрдзрд╛рд░рд╛рд╡рд░ рд╕рдВрдкреБрд╖реНрдЯрд╛рдд рдпреЗрдК рд╢рдХрдд рдирд╛рд╣реА - рдлреМрдЬрджрд╛рд░реА рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рдХреЙрд░реНрдкрд╕ рдбреЗрд▓рд┐рдХреНрдЯреАрдЪреНрдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рддреАрд╡рд░ рдирд┐рд░реНрдгрдп рдШреЗрдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ. рддрдкрд╛рд╕ рдЕрдзрд┐рдХрд╛рд░реА.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛