ΠΡΠ½ΠΎΠ²Π½ΡΠ΅
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°
limit_req_dry_run , ΠΊΠΎΡΠΎΡΠ°Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΎΠ±Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² (Π±Π΅Π· rate limit), Π½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΡΡΡΡ Π²ΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π·Π° Π»ΠΈΠΌΠΈΡΡ ΡΠΈΡΠ»Π° Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ; - ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π² Π±Π»ΠΎΠΊΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ «upstream» Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ «
hash » Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ, Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΡΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ° ΡΠ΅ΠΏΠ΅ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠΉ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ (round-robin); - Π£ΡΡΡΠ°Π½ΡΠ½ ΠΊΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΡΡΠ° Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ «image_filter» ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΊΠΎΠ΄Π° ΠΎΡΠΈΠ±ΠΊΠΈ 415 Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ «error_page»;
- Π£ΡΡΡΠ°Π½ΡΠ½ ΠΊΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΏΡΠΎΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Perl.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ
Π Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ njs ΡΡΡΡΠ°Π½Π΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π²ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π² Ρ
ΠΎΠ΄Π΅ fuzzing-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ «process» c ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° (process.pid, process.env.HOME ΠΈ Ρ.ΠΏ.). ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠΈ Π²ΠΎ Π²ΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Array.prototype.fill(). Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ECMAScript 5 ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°
var o = {a:2};
Object.defineProperty(o, ‘b’, {get:function(){return 2*this.a}});
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru