ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ Π² ΠΏΡΠ΅Π΄Π΄Π²Π΅ΡΠΈΠΈ ΡΡΠ°ΡΡΠ° ΠΊΡΡΡΠ°
ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ β ΡΡΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ Ρ
ΠΎΡΡΠ°ΠΌ Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ.
HAProxy ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ ΠΎΡΠΊΠ»ΠΈΠΊΠ° ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π²Π·ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ°. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Linux, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ CentOS 8, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
HAProxy ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² Ρ ΠΎΡΠ΅Π½Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π²Π΅Π±-ΡΠ»ΡΠΆΠ± Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ ΡΠ°Π³ΠΈ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ HAProxy Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΌ Ρ ΠΎΡΡΠ΅ CentOS 8, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ°ΡΠΈΠΊ Π½Π° Π²Π°ΡΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΡ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΈΠ»ΡΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Ρ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π΄Π²Π° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠ° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π° Ρ ΠΎΡΡ Π±Ρ Π±Π°Π·ΠΎΠ²Π°Ρ Π²Π΅Π±-ΡΠ»ΡΠΆΠ±Π°, ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΠΊ nginx ΠΈΠ»ΠΈ httpd, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° HAProxy Π½Π° CentOS 8
Π ΡΠΈΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ HAProxy β Π±ΡΡΡΡΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠ΅Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π²Π°ΠΌ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ CentOS, ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ ΡΠ°ΠΌΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ. Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sudo yum info haproxy
HAProxy Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π° Π²ΡΠ±ΠΎΡ ΡΡΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ: Π΄Π²Π΅ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΈ ΡΡΠ΅ΡΡΡ, Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅ HAProxy, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠΈΡΡ, Ρ ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ 2.0, ΠΊΠΎΡΠΎΡΠ°Ρ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»Π° Π΄ΠΎΡΡΡΠΏΠ½Π° Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°. ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π»ΠΈ Ρ Π²Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
sudo yum install gcc pcre-devel tar make -y
ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΠΈΠΆΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ, Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ Π½Π°
wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΡΠΏΠ°ΠΊΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
tar xzvf ~/haproxy.tar.gz -C ~/
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ:
cd ~/haproxy-2.0.7
ΠΠ°ΡΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ΄ Π²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ:
make TARGET=linux-glibc
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΠΌΡ HAProxy:
sudo make install
Π’Π΅ΠΏΠ΅ΡΡ HAProxy ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, Π½ΠΎ Π΄Π»Ρ Π΅Π΅ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π±ΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π½ΠΈΠΆΠ΅.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° HAProxy ΠΏΠΎΠ΄ Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΡΠ°ΠΉΠ» ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ HAProxy:
sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΡΡΡΠ»ΠΊΡ Π΄Π»Ρ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ HAProxy ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ»ΡΠΆΠ±Ρ, ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» haproxy.init ΠΈΠ· examples Π² ΡΠ²ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /etc/init.d. ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Ρ, ΡΡΠΎΠ±Ρ ΡΠΊΡΠΈΠΏΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ systemd:
sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload
ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠ»ΡΠΆΠ±Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ:
sudo chkconfig haproxy on
Π ΡΠ΅Π»ΡΡ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° HAProxy:
sudo useradd -r haproxy
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅ΡΠ΅ ΡΠ°Π· ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π΅ΡΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ 2.0.7, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Π° Π²ΡΡΠ΅.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ°ΠΉΡΠ²ΠΎΠ» Π² CentOS 8 ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅ΡΡΡΠΈΠΊΡΠΈΠ²Π΅Π½ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ°ΠΉΡΠ²ΠΎΠ»:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° HAProxy β Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠΎ ΡΡΡΠΈ, Π²ΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ HAProxy, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ ΠΈ ΠΊΡΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡ ΡΠ΅ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ /etc/haproxy/haproxy.cfg Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ HAProxy
ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ (layer 4)
ΠΠ°ΡΠ½Π΅ΠΌ Ρ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ vi Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π½ΠΈΠΆΠ΅:
sudo vi /etc/haproxy/haproxy.cfg
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΡΠ°ΠΉΠ» ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ. ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ server_name ΡΠ΅ΠΌ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ Π²Π°ΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ, Π° private_ip β ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌΠΈ IP-Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ Π²Π΅Π±-ΡΡΠ°ΡΠΈΠΊ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ IP-Π°Π΄ΡΠ΅ΡΠ°
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_back
backend http_back
balance roundrobin
server server_name1 private_ip1:80 check
server server_name2 private_ip2:80 check
ΠΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (layer 4) Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ http_front, ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΡΡ 80, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ°ΡΠΈΠΊ ΠΊ Π±ΡΠΊΠ΅Π½Π΄Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ http_back. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° /haproxy?stats ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ.
Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π±ΡΠΊΠ΅Π½Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ HAProxy ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ Π΄Π»Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π² Π±ΡΠΊΠ΅Π½Π΄Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΎΠΏΡΠΈΠΉ:
- Roundrobin: ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ Π²Π΅ΡΠΎΠΌ. ΠΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΠ»Π°Π²Π½ΡΠΉ ΠΈ ΡΠ΅ΡΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ. ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° Π»Π΅ΡΡ.
- Leastconn: Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ²Π΅Ρ Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. Π¦ΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄Π»Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΡΠ΅Π°Π½ΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ LDAP, SQL, TSE ΠΈ Ρ. Π΄., Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΡ ΡΠ΅Π°Π½ΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ HTTP.
- First: ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΡΠ»ΠΎΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. Π‘Π΅ΡΠ²Π΅ΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π΄ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² ΡΠ΅ΡΠΌΠ΅. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ maxconn, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ.
- Source: IP-Π°Π΄ΡΠ΅Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Ρ Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΈ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ΠΎΠ±ΡΠΈΠΉ Π²Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ IP-Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΡΡΠ°Π²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌΠΈ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ (layer 7)
ΠΡΠ΅ ΠΎΠ΄Π½Π° Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ β Π½Π°ΡΡΡΠΎΠΈΡΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ (layer 7), ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π½Π° ΡΠ°Π·Π½ΡΡ Ρ ΠΎΡΡΠ°Ρ . ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎ ΠΏΡΡΠ΅ΠΌ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ URL.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ HAProxy Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°:
sudo vi /etc/haproxy/haproxy.cfg
ΠΠ°ΡΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΈ Π±ΡΠΊΠ΅Π½Π΄ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ Π½ΠΈΠΆΠ΅:
frontend http_front
bind *:80
stats uri /haproxy?stats
acl url_blog path_beg /blog
use_backend blog_back if url_blog
default_backend http_back
backend http_back
balance roundrobin
server server_name1 private_ip1:80 check
server server_name2 private_ip2:80 check
backend blog_back
server server_name3 private_ip3:80 check
Π€ΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ACL Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ url_blog, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌ Ρ ΠΏΡΡΡΠΌΠΈ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌΠΈΡΡ Ρ /blog. Use_backend ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ url_blog, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠΌ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ blog_back, Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π‘ΠΎ ΡΡΠΎΡΠΎΠ½Ρ Π±ΡΠΊΠ΅Π½Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄Π²Π΅ Π³ΡΡΠΏΠΏΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²: http_back, ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅, ΠΈ Π½ΠΎΠ²ΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ blog_back, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ example.com/blog.
ΠΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ HAProxy Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sudo systemctl restart haproxy
ΠΡΠ»ΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ , ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΠΈΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ½ΠΎΠ²Π° ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ
ΠΠΎΠ³Π΄Π° HAProxy Π½Π°ΡΡΡΠΎΠ΅Π½ ΠΈ Π·Π°ΠΏΡΡΠ΅Π½, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ IP-Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈΡΡ ΠΊ Π±ΡΠΊΠ΅Π½Π΄Ρ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ stats uri Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ.
http://load_balancer_public_ip/haproxy?stats
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ Π²Π°ΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π·Π΅Π»Π΅Π½ΡΠΌ, ΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ!
Π‘ΡΡΠ°Π½ΠΈΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π²Π°ΡΠΈΡ Π²Π΅Π±-Ρ ΠΎΡΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ/ΠΏΡΠΎΡΡΠΎΡ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π°Π½ΡΠΎΠ². ΠΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΡΠ°ΡΠ½ΡΠΌ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΈ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΏΠΈΠ½Π³ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ ΠΌΠ°ΡΠΈΠ½Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΡΠ»ΠΈ Π²Π°Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ HTTP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ ΡΠ°ΠΉΡΠ²ΠΎΠ»ΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ HAProxy ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΠΈΠΆΠ΅:
sudo systemctl status haproxy
ΠΠ°ΡΠΈΡΠ° ΡΡΡΠ°Π½ΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠΎΠ»Ρ
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΈΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°Π½Π° Π²ΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅, ΡΠΎ ΠΎΠ½Π° ΠΎΡΠΊΡΡΡΠ° Π΄Π»Ρ Π²ΡΠ΅ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΎΠ±ΠΎΠ·ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΈΠ΄Π΅Π΅ΠΉ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π·Π½Π°ΡΠΈΡΡ Π΅ΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΡΠ°, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΊΠΎΠ½Π΅Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π° haproxy.cfg. ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ username ΠΈ password Π½Π° ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ΅:
listen stats
bind *:8181
stats enable
stats uri /
stats realm Haproxy Statistics
stats auth username:password
ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΡΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ ΡΠ΄Π°Π»ΠΈΡΠ΅ ΡΡΠ°ΡΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° stats uri ΠΈΠ· ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π³ΡΡΠΏΠΏΡ. ΠΠΎΠ³Π΄Π° Π·Π°ΠΊΠΎΠ½ΡΠΈΡΠ΅, ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ HAProxy.
sudo systemctl restart haproxy
ΠΠ°ΡΠ΅ΠΌ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Ρ Π½ΠΎΠ²ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΠΏΠΎΡΡΠ° ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
http://load_balancer_public_ip:8181
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π²Π°ΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π·Π΅Π»Π΅Π½ΡΠΌ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ IP Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΏΠΎΡΡΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
http://load_balancer_public_ip/
ΠΡΠ»ΠΈ Π½Π° Π²Π°ΡΠΈΡ
Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
Π΅ΡΡΡ Ρ
ΠΎΡΡ Π±Ρ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΡΠ΅Π»Π΅Π²ΡΡ
ΡΡΡΠ°Π½ΠΈΡ, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΎΡΠ²Π΅Ρ ΠΎΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Ρ
ΠΎΡΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅: Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ HAProxy
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ HAProxy! ΠΠ°ΠΆΠ΅ Ρ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΡΡ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π² Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ HAProxy, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΏΠΎΡΠΎΠ±Π½Π° Π½Π° Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΡΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ Π² ΠΊΡΠ°ΡΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅. ΠΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ
ΠΎΡΡΠΎΠ² Π΄Π»Ρ Π·Π°ΡΠΈΡΡ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°ΠΏΠ°ΡΠ° ΠΌΠΎΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΌ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΡΠΊΡ ΠΎΡΠΊΠ°Π·Π°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ²ΡΡΠΈΡΡ Π²ΡΡΠΎΠΊΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΠΏΠ»Π°Π²Π°ΡΡΠΈΠΉ IP ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ°ΠΌΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± ΡΡΠΎΠΌ Π² Π½Π°ΡΠ΅ΠΉ
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΊΡΡΡΠ΅
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com