njs 0.4.0 เบ›เปˆเบญเบ. Rambler เป„เบ”เป‰เบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบŸเป‰เบญเบ‡เปƒเบซเป‰เบขเบธเบ”เป€เบŠเบปเบฒเบ„เบฐเบ”เบตเบญเบฒเบเบฒเบ•เปเปˆ โ€‹โ€‹Nginx

เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™ Nginx เป€เบœเบตเบเปเบœเปˆ เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเปเบ›เบžเบฒเบชเบฒ JavaScript - njs 0.4.0. เบ™เบฒเบเบžเบฒเบชเบฒ njs เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ECMAScript เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ Nginx เปƒเบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป‚เบ”เบเปƒเบŠเป‰ scripts เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ. Scripts เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เป€เบซเบ”เบœเบปเบ™เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป, เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ, เปเบเป‰เป„เบ‚เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป / เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡, เบซเบผเบทเบเบฒเบ™เบชเป‰เบฒเบ‡ stubs เบขเปˆเบฒเบ‡เป„เบงเบงเบฒเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบš.

เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡ js_เบ™เปเบฒเป€เบ‚เบปเป‰เบฒ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเป‚เบกเบ”เบนเบ™ JavaScript เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบผเบทเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เป‚เบกเบ”เบนเบ™ foo.js เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เปเบ–เบšเบŸเบฑเบ‡เบŠเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เป€เบญเบตเป‰เบ™เป„เบ”เป‰เบเปˆเบฝเบงเบเบฑเบšเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบชเบฐเป€เบžเบฒเบฐ:

foo.js:

เปเบ–เบšเบŸเบฑเบ‡เบŠเบฑเบ™(r) {
r.return(200);
}

เบชเบปเปˆเบ‡เบญเบญเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ {bar};

nginx.conf:

js_import foo.js;

เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ / {
js_content foo.bar;
}

เปƒเบ™เบงเบฑเบ”เบ–เบธ r.headersOut เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš headers เบ—เบตเปˆเบ›เบฐเบเบญเบšเบกเบตเบซเบผเบฒเบเบ„เปˆเบฒ, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡:

เป€เบ™เบทเป‰เบญเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ (r) {
r.headersOut['Set-Cookie'] = [
'foo=111; เบชเบนเบ‡เบชเบธเบ”เบญเบฒเบเบธ=3600; เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ =/',
'bar=qqq; เบชเบนเบ‡เบชเบธเบ”เบญเบฒเบเบธ=86400; เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ =/'
];

r.return(200);
}

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เป„เบ”เป‰ ัะพะพะฑั‰ะตะฝะธะต เบšเปเบฅเบดเบชเบฑเบ” Rambler Group เบเปˆเบฝเบงเบเบฑเบš เบ—เบดเบ”เบ—เบฒเบ‡ เบ•เปเปˆโ€‹เป€เบˆเบปเป‰เบฒโ€‹เปœเป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบชเบทเบšโ€‹เบชเบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เบ—เบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบขเบธเบ”โ€‹เป€เบŠเบปเบฒโ€‹เบเบฒเบ™โ€‹ เบ„เบฐเบ”เบตเบญเบฒเบเบฒเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš Nginx. เบ„เปเบฒเบฎเป‰เบญเบ‡เบŸเป‰เบญเบ‡เป„เบ”เป‰เบ–เบทเบเบชเบปเปˆเบ‡เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” เบญเบญเบ เปƒเบ™เป€เบ”เบทเบญเบ™เบ—เบฑเบ™เบงเบฒ, เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ‚เบญเบ‡เบ„เบฐเบ™เบฐเบเปเบฒเบกเบฐเบเบฒเบ™เบšเปเบฅเบดเบซเบฒเบ™เบ‚เบญเบ‡เบเบธเปˆเบก Rambler เป€เบžเบทเปˆเบญเป‚เบญเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ„เบฐเบ”เบตเบเบฑเบš Nginx เบเบฑเบšเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบเบปเบ”เบซเบกเบฒเบเปเบžเปˆเบ‡. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบตเบฅเบฒเบเบ‡เบฒเบ™เบงเปˆเบฒเบชเบฑเบ™เบเบฒเบเบฑเบšเบšเปเบฅเบดเบชเบฑเบ”เบเบปเบ”เบซเบกเบฒเบ Lynwood Investments CY Ltd, เป€เบŠเบดเปˆเบ‡เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เป„เบ”เป‰เบ•เบดเบ”เบ•เปเปˆเบเบฑเบšเบญเบปเบ‡เบเบฒเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบเบปเบ”เบซเบกเบฒเบ, เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ™เบฒเบกเบ‚เบญเบ‡ Rambler, เป„เบ”เป‰เบ–เบทเบเบเบปเบเป€เบฅเบตเบ.

เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ, เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบเบฒเบ™เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบชเบฑเบ™เบเบฒ, Lynwood Investments CY Ltd เบเบฑเบ‡เบ„เบปเบ‡เบกเบตเบชเบดเบ”เบ—เบตเปˆเบˆเบฐเบžเบดเบชเบนเบ”เบ„เบงเบฒเบกเป€เบชเบเบซเบฒเบเปเบฅเบฐเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเปƒเบ™เบเปเบฅเบฐเบ™เบต NGINX เปƒเบ™เบ™เบฒเบกเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เปเบฅเบฐเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เปเบ•เปˆเบšเปเปˆเบกเบตเบชเบดเบ”เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบ—เบธเบฅเบฐเบเบดเบ”เปƒเบ™เบ™เบฒเบกเบ‚เบญเบ‡ Rambler. เบเบธเปˆเบก. เป‚เบ”เบ เบ‚เปเป‰เบกเบนเบ™เบ‚เปˆเบฒเบงเบชเบฒเบ™ เบˆเบฒเบเบ—เบฐเบ™เบฒเบเบ„เบงเบฒเบกเบ‚เบญเบ‡เบชเบนเบ™เบชเบดเบ”เบ—เบดเบ”เบดเบˆเบดเบ•เบญเบฅ, เบ„เปเบฒเบฎเป‰เบญเบ‡เบŸเป‰เบญเบ‡เบ‚เบญเบ‡ Rambler เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ„เบฐเบ”เบตเบญเบฒเบเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบเบปเบเป€เบฅเบตเบเบžเบฝเบ‡เปเบ•เปˆเบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบ›เบญเบ‡เบ”เบญเบ‡เบ‚เบญเบ‡เบเปˆเบฒเบเบ•เปˆเบฒเบ‡เป† - เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบšเปเปˆเบกเบตเบชเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เบ‚เบญเบ‡เบชเบฒเบ™เปƒเบ™เบ„เบฐเบ”เบตเบญเบฒเบเบฒเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ. เป€เบˆเบปเป‰เบฒเปœเป‰เบฒเบ—เบตเปˆเบชเบทเบšเบชเบงเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™