Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Nginx Π²ΡΠΏΡΡΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ·ΡΠΊΠ° JavaScript β . ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ njs ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΡ ECMAScript ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Nginx ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. Π‘ΠΊΡΠΈΠΏΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΡΠ²Π΅ΡΠ°, ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ°/ΠΎΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°Π³Π»ΡΡΠ΅ΠΊ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
Π Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° JavaScript-ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΡΡΠ΅ΠΉ (location). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΌΠΎΠ΄ΡΠ»Π΅ foo.js ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ bar, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ Π² ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌΡ ΠΏΡΡΠΈ:
foo.js:
function bar(r) {
r.return(200);
}
export default {bar};
nginx.conf:
js_import foo.js;
location / {
js_content foo.bar;
}
Π ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
function content(r) {
r.headersOut[βSet-Cookieβ] = [
βfoo=111; Max-Age=3600; path=/β,
βbar=qqq; Max-Age=86400; path=/β
];
r.return(200);
}
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Rambler Group ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΡΠ³Π°Π½Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Ρ ΠΎΠ΄Π°ΡΠ°ΠΈΜΡΡΠ²Π° ΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΠΈ , ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ Nginx. Π₯ΠΎΠ΄Π°ΡΠ°ΠΉΡΡΠ²ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Π΄Π΅ΠΊΠ°Π±ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ²Π΅ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΎΠ² Rambler Group ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π° Ρ Nginx Π² Π³ΡΠ°ΠΆΠ΄Π°Π½ΡΠΊΠΎ-ΠΏΡΠ°Π²ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΎΠΎΠ±ΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠ°ΡΡΠΎΡΠΆΠ΅Π½ΠΈΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° Ρ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΈΜ Lynwood Investments CY Ltd, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΠ»Π°ΡΡ Π² ΠΏΡΠ°Π²ΠΎΠΎΡ ΡΠ°Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΡΠ³Π°Π½Ρ, Π΄Π΅ΠΉΡΡΠ²ΡΡ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ Rambler.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ°ΡΡΠΎΡΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Lynwood Investments CY Ltd ΡΠΎΡ ΡΠ°Π½ΠΈΠ»Π° Π·Π° ΡΠΎΠ±ΠΎΠΈΜ ΠΏΡΠ°Π²ΠΎ Π΄ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΈΡΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠ±ΡΡΠΊΠΎΠ² ΠΈ ΠΈΡ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π΄Π΅Π»Ρ NGINX ΠΎΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Π² ΡΠ²ΠΎΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°Ρ , Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ°Π²Π° Π²Π΅ΡΡΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅Π» ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ Rambler Group. ΠΠΎ ΠΎΡ ΡΡΠΈΡΡΠ° Π¦Π΅Π½ΡΡΠ° ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΡΠ°Π² Ρ ΠΎΠ΄Π°ΡΠ°ΠΉΡΡΠ²ΠΎ Rambler Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠ»Ρ, ΡΠ°ΠΊ ΡΠ³ΠΎΠ»ΠΎΠ²Π½ΠΎΠ΅ Π΄Π΅Π»ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΈΠΌΠΈΡΠ΅Π½ΠΈΡ ΡΡΠΎΡΠΎΠ½ β ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠΎΡΡΠ°Π²Π° ΠΏΡΠ΅ΡΡΡΠΏΠ»Π΅Π½ΠΈΡ Π² ΡΠ³ΠΎΠ»ΠΎΠ²Π½ΡΡ Π΄Π΅Π»Π°Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΡΠ³Π°Π½ΠΎΠ².
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
