แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™ njs 0.4.0 แŸ” Rambler แž”แžถแž“แž•แŸ’แž‰แžพแž‰แžแŸ’แžแžทแžŠแžพแž˜แŸ’แž”แžธแž”แž‰แŸ’แž…แž”แŸ‹แžŸแŸ†แžŽแžปแŸ†แžšแžฟแž„แž–แŸ’แžšแž แŸ’แž˜แž‘แžŽแŸ’แžŒแž”แŸ’แžšแž†แžถแŸ†แž„แž“แžนแž„ Nginx

แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž‚แž˜แŸ’แžšแŸ„แž„ Nginx แž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž— แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แž€แž”แŸ’แžšแŸ‚แž—แžถแžŸแžถ JavaScript - njs แŸ แŸกแŸฃ. แžขแŸ’แž“แž€แž”แž€แž”แŸ’แžšแŸ‚ njs แžขแž“แžปแžœแžแŸ’แžแžŸแŸ’แžแž„แŸ‹แžŠแžถแžš ECMAScript แž“แžทแž„แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž–แž„แŸ’แžšแžธแž€แžŸแž˜แžแŸ’แžแž—แžถแž–แžšแž”แžŸแŸ‹ Nginx แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ†แžŽแžพแžŠแŸ„แž™แž”แŸ’แžšแžพแžŸแŸ’แž‚แŸ’แžšแžธแž”แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แŸ” แžŸแŸ’แž‚แŸ’แžšแžธแž”แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแž“แŸ…แž€แŸ’แž“แžปแž„แžฏแž€แžŸแžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แžŠแžพแž˜แŸ’แž”แžธแž€แŸ†แžŽแžแŸ‹แžแž€แŸ’แž€แžœแžทแž‡แŸ’แž‡แžถแž€แž˜แŸ’แžšแžทแžแžแŸ’แž–แžŸแŸ‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ†แžŽแžพ แž”แž„แŸ’แž€แžพแžแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’ แž”แž„แŸ’แž€แžพแžแž€แžถแžšแž†แŸ’แž›แžพแž™แžแž”แž‡แžถแž›แž€แŸ’แžแžŽแŸˆแžแžถแž˜แžœแž“แŸ’แž แž€แŸ‚แž”แŸ’แžšแŸ‚แžŸแŸ†แžŽแžพ/แž€แžถแžšแž†แŸ’แž›แžพแž™แžแž” แžฌแž”แž„แŸ’แž€แžพแž stubs แž™แŸ‰แžถแž„แž†แžถแž”แŸ‹แžšแž แŸแžŸแžŠแžพแž˜แŸ’แž”แžธแžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž”แž‰แŸ’แž แžถแž“แŸ…แž€แŸ’แž“แžปแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸแž แž‘แŸ†แž–แŸแžšแŸ”

แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แžแŸ’แž˜แžธแžขแž“แžปแžœแžแŸ’แžแž€แžถแžšแžŽแŸ‚แž“แžถแŸ† js_แž“แžถแŸ†แž…แžผแž› แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž“แžถแŸ†แž…แžผแž›แž˜แŸ‰แžผแžŒแžปแž› JavaScript แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแžขแžแŸแžš แžฌแžขแŸ’แž“แž€แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž‘แžธแžแžถแŸ†แž„แŸ” แžงแž‘แžถแž แžšแžŽแŸ แž“แŸ…แž€แŸ’แž“แžปแž„แž˜แŸ‰แžผแžŒแžปแž› foo.js แžขแŸ’แž“แž€แžขแžถแž…แž€แŸ†แžŽแžแŸ‹แžšแž”แžถแžšแž˜แžปแžแž„แžถแžš แžŠแŸ‚แž›แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแž แŸ…แžแžถแž‘แžถแž€แŸ‹แž‘แž„แž“แžนแž„แž•แŸ’แž›แžผแžœแž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹แž˜แžฝแž™แŸ–

foo.jsแŸ–

แžšแž”แžถแžšแž˜แžปแžแž„แžถแžš(r) {
r.return(200);
}

แž“แžถแŸ†แž…แŸแž‰แž›แŸ†แž“แžถแŸ†แžŠแžพแž˜ {bar};

nginx.confแŸ–

js_แž“แžถแŸ†แž…แžผแž› foo.js;

แž‘แžธแžแžถแŸ†แž„ / {
js_content foo.bar;
}

แž“แŸ…แž€แŸ’แž“แžปแž„แžœแžแŸ’แžแžป r.headersOut แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แž‹แž˜แž€แžแžถแžŠแŸ‚แž›แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แžแž˜แŸ’แž›แŸƒแž‡แžถแž…แŸ’แžšแžพแž“แžงแž‘แžถแž แžšแžŽแŸแŸ–

แž˜แžถแžแžทแž€แžถแž˜แžปแžแž„แžถแžš (r) {
r.headersOut['Set-Cookie'] = [
'foo=111; แžขแžถแž™แžปแžขแžแžทแž”แžšแž˜แžถ = แŸฃแŸฆแŸ แŸ ; แž•แŸ’แž›แžผแžœ =/',
'bar=qqq; แžขแžถแž™แžปแžขแžแžทแž”แžšแž˜แžถ=86400; แž•แŸ’แž›แžผแžœ =/'
];

r.return(200);
}

แž›แžพแžŸแž–แžธแž“แŸแŸ‡แž‘แŸ€แžแžœแžถแžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹ ัะพะพะฑั‰ะตะฝะธะต แž€แŸ’แžšแžปแž˜แž แŸŠแžปแž“ Rambler Group แžขแŸ†แž–แžธ แž‘แžทแžŸแžŠแŸ… แž‘แŸ…แžขแžถแž‡แŸ’แž‰แžถแž’แžšแžŸแŸŠแžพแž”แžขแž„แŸ’แž€แŸแžแž“แŸƒแž‰แžแŸ’แžแžทแž•แŸ’แž›แžผแžœแž€แžถแžšแžŠแžพแž˜แŸ’แž”แžธแž”แž‰แŸ’แž…แž”แŸ‹ แžšแžฟแž„โ€‹แž€แŸ’แžแžธโ€‹แž–แŸ’แžšแž แŸ’แž˜แž‘แžŽแŸ’แžŒแž‘แžถแž€แŸ‹แž‘แž„แž“แžนแž„ Nginx แŸ” แž‰แžแŸ’แžแžทแžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž‡แžผแž“แž‡แžถแž•แŸ’แž“แŸ‚แž€แž˜แžฝแž™แž“แŸƒแž€แžถแžšแžขแž“แžปแžœแžแŸ’แž แž”แž‰แŸ’แž แžถ แž“แŸ…แž€แŸ’แž“แžปแž„แžแŸ‚แž’แŸ’แž“แžผ แž€แžถแžšแžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแžšแž”แžŸแŸ‹แž€แŸ’แžšแžปแž˜แž”แŸ’แžšแžนแž€แŸ’แžŸแžถแž—แžทแž”แžถแž›แž“แŸƒแž€แŸ’แžšแžปแž˜แž แŸŠแžปแž“ Rambler Group แžŠแžพแž˜แŸ’แž”แžธแž•แŸ’แž‘แŸแžšแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‡แžถแž˜แžฝแž™ Nginx แž‘แŸ…แž€แžถแž“แŸ‹แž•แŸ’แž“แŸ‚แž€แž…แŸ’แž”แžถแž”แŸ‹แžŸแŸŠแžธแžœแžทแž›แŸ” แž›แžพแžŸแž–แžธแž“แŸแŸ‡แž‘แŸ€แž แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แžšแžถแž™แž€แžถแžšแžŽแŸแžแžถแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแž‡แžถแž˜แžฝแž™แž€แŸ’แžšแžปแž˜แž แŸŠแžปแž“แž…แŸ’แž”แžถแž”แŸ‹ Lynwood Investments CY Ltd แžŠแŸ‚แž›แžŠแŸ†แž”แžผแž„แžกแžพแž™แž”แžถแž“แž‘แžถแž€แŸ‹แž‘แž„แž—แŸ’แž“แžถแž€แŸ‹แž„แžถแžšแžขแž“แžปแžœแžแŸ’แžแž…แŸ’แž”แžถแž”แŸ‹ แžŠแŸ‚แž›แž’แŸ’แžœแžพแžŸแž€แž˜แŸ’แž˜แž—แžถแž–แž‡แŸ†แž“แžฝแžŸ Rambler แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž…แž”แŸ‹แŸ”

แž‚แžฝแžšแžฑแŸ’แž™แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸ แž‘แŸ„แŸ‡แž”แžธแž‡แžถแž˜แžถแž“แž€แžถแžšแž”แž‰แŸ’แž…แž”แŸ‹แž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแž€แŸแžŠแŸ„แž™ Lynwood Investments CY Ltd แžšแž€แŸ’แžŸแžถแžŸแžทแž‘แŸ’แž’แžทแž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž‰แŸ’แž‡แžถแž€แŸ‹แž€แžถแžšแžแžผแž…แžแžถแž แž“แžทแž„แžŸแŸ†แžŽแž„แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžšแžŽแžธ NGINX แž€แŸ’แž“แžปแž„แž“แžถแž˜แžแŸ’แž›แžฝแž“ แž“แžทแž„แž•แž›แž”แŸ’แžšแž™แŸ„แž‡แž“แŸแž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž˜แžทแž“แž˜แžถแž“แžŸแžทแž‘แŸ’แž’แžทแž’แŸ’แžœแžพแžขแžถแž‡แžธแžœแž€แž˜แŸ’แž˜แžŽแžถแž˜แžฝแž™แž€แŸ’แž“แžปแž„แž“แžถแž˜ Rambler แžกแžพแž™แŸ” แž€แŸ’แžšแžปแž˜แŸ” แžŠแŸ„แž™ แž– แž–แžธแž˜แŸแž’แžถแžœแžธแž“แŸƒแž˜แž‡แŸ’แžˆแž˜แžŽแŸ’แžŒแž›แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแžทแž‘แŸ’แž’แžทแžŒแžธแž‡แžธแžแž› แž‰แžแŸ’แžแžทแžšแž”แžŸแŸ‹ Rambler แž˜แžทแž“แž˜แžถแž“แžŸแžปแž–แž›แž—แžถแž–แž‘แŸ แžŠแŸ„แž™แžŸแžถแžšแžŸแŸ†แžŽแžปแŸ†แžšแžฟแž„แž–แŸ’แžšแž แŸ’แž˜แž‘แžŽแŸ’แžŒแž˜แžทแž“แžขแžถแž…แž”แž‰แŸ’แž…แž”แŸ‹แž”แžถแž“แžแŸ‚แž›แžพแž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž“แŸƒแž€แžถแžšแž•แŸ’แžŸแŸ‡แž•แŸ’แžŸแžถแžšแž”แžŸแŸ‹แž—แžถแž‚แžธ - แž€แžถแžšแžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแž›แžพแžขแžœแžแŸ’แžแž˜แžถแž“แž“แŸƒแžŸแžถแžšแž–แžถแž„แŸ’แž‚แž€แžถแž™แž€แŸ’แž“แžปแž„แžŸแŸ†แžŽแžปแŸ†แžšแžฟแž„แž–แŸ’แžšแž แŸ’แž˜แž‘แžŽแŸ’แžŒแž‚แžบแžŸแŸ’แžแžทแžแž“แŸ…แž€แŸ’แž“แžปแž„แžŸแž˜แžแŸ’แžแž€แžทแž…แŸ’แž…แž“แŸƒ แžขแžถแž‡แŸ’แž‰แžถแž’แžšแžŸแŸŠแžพแž”แžขแž„แŸ’แž€แŸแžแŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹