Π²ΡΠΏΡΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ , Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ° web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ΠΈ Java). ΠΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ NGINX Unit ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠ°Π²ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°. ΠΠΎΠ΄ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ ΠΈ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. Π‘ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ NGINX Unit ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ°.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ:
- ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ round-robin. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° Π΄Π²Π° ΡΠ΅ΡΠ²Π΅ΡΠ° 192.168.0.100 ΠΈ 192.168.0.101 Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° Π²ΡΠΎΡΠΎΠΉ Π² Π΄Π²Π° ΡΠ°Π·Π° Π±ΠΎΠ»ΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ:
Β«upstreamsΒ»: {
Β«rr-lbΒ»: {
Β«serversΒ»: {
Β«192.168.0.100:8080Β»: { },
Β«192.168.0.101:8080Β»: { Β«weightΒ»: 2 }
}
}
} - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π΄Π°Π½ΠΈΡ Π³ΠΈΠ±ΠΊΠΈΡ
ΠΏΡΠ°Π²ΠΈΠ» ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΏΠΎΡ
ΠΎΠΆΠΈΡ
Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Β«Β» Π² nginx. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΡΡΡ Π·Π°Π΄Π°ΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Β«fallbackΒ», ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ, Π΅ΡΠ»ΠΈ Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ Π² ΠΏΡΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΡΠ΅Π· Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Β«shareΒ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° PHP Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΡΠ°ΠΉΠ»Π° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /data/www/ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ:
{
Β«shareΒ»: Β«/data/www/Β»,
Β«fallbackΒ»: {
Β«passΒ»: Β«applications/phpΒ»
}
}ΠΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² Β«fallbackΒ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ»Π° Π½Π΅Ρ Π² /data/www/, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ Π²ΡΠ΄Π°ΡΡ Π΅Π³ΠΎ ΠΈΠ· /data/cache/, Π° Π΅ΡΠ»ΠΈ Π½Π΅Ρ ΠΈ ΡΠ°ΠΌ, ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Π±ΡΠΊΠ΅Π½Π΄:
{
Β«shareΒ»: Β«/data/www/Β»,Β«fallbackΒ»: {
Β«shareΒ»: Β«/data/cache/Β»,Β«fallbackΒ»: {
Β«proxyΒ»: Β«http://127.0.0.1:9000Β»
}
}
} - Π Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π² ΡΡΠΈΠ»Π΅ JavaScript (Β«//β¦Β» ΠΈ Β«/* β¦ */Β») ΠΈ ΡΠΈΡΡΠΊΠ° ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±Π°ΠΉΡΠΎΠ² (), ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² JSON.
- Π‘Π½ΠΈΠΆΠ΅Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π·Π° ΡΡΡΡ ΡΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΡ ΡΠ΅Π»Π° ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° Π΄ΠΈΡΠΊ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
