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