CentOS рдкрд░ HAProxy рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдкреВрд░реНрд╡ рд╕рдВрдзреНрдпрд╛ рдкрд░ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ "рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ. рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдФрд░ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ"

CentOS рдкрд░ HAProxy рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХрд╛ рдПрдХ рд╣реА рдмрд┐рдВрджреБ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реБрдП рдХрдИ рд╣реЛрд╕реНрдЯ рдкрд░ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рд╕рдВрддреБрд▓рди рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рд╣реИред HAProxy рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдУрдкрди рд╕реЛрд░реНрд╕ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдФрд░ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

HAProxy рд╕рдВрд╕рд╛рдзрди рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ, рдереНрд░реВрдкреБрдЯ рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрд╕рд╛рдзрди рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгреЛрдВ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ CentOS 8, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рд╕рд╛рде рд╣реА рд╕рд┐рд╕реНрдЯрдо рдкрд░ рднреА рдбреЗрдмрд┐рдпрди 8 ╨╕ Ubuntu рдХреЗ 16.

CentOS рдкрд░ HAProxy рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

HAProxy рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╡рд╛рд▓реА рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдорд▓реНрдЯреА-рд╕рд░реНрд╡рд░ рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ CentOS 8 рдХреНрд▓рд╛рдЙрдб рд╣реЛрд╕реНрдЯ рдкрд░ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ HAProxy рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рджреЗрддреА рд╣реИ, рдЬреЛ рдлрд┐рд░ рдЖрдкрдХреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд░реВрдЯ рдХрд░рддрд╛ рд╣реИред

рд╕рд░реНрд╡реЛрддреНрддрдо рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд░реНрдд рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо рджреЛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдФрд░ рдПрдХ рд▓реЛрдб рд╕рдВрддреБрд▓рди рд╕рд░реНрд╡рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реЗрдм рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдЙрдирдХреЗ рдмреАрдЪ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рд╡реЗрдм рд╕реЗрд╡рд╛ рдЬреИрд╕реЗ рдХрд┐ nginx рдпрд╛ httpd рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

CentOS 8 рдкрд░ HAProxy рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

рдХреНрдпреЛрдВрдХрд┐ HAProxy рдПрдХ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рдорд╛рдирдХ CentOS рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╡рд┐рддрд░рдг рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдЖрджреЗрд╢ рдЪрд▓рд╛рдПрдБ:

sudo yum info haproxy

HAProxy рд╣рдореЗрд╢рд╛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рджреЛ рд╕рдмрд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдПрдХ рддреАрд╕рд░рд╛, рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬреЛ рдЕрднреА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдЖрдк рд╣рдореЗрд╢рд╛ HAProxy рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рддрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рд╣рдо рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг 2.0 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдЧрд╛рдЗрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп рдорд╛рдирдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдерд╛ред рдЖрдкрдХреЛ рдЗрд╕реЗ рдореВрд▓ рд╕реНрд░реЛрдд рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛. рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдЬрд╛рдВрдЪ рд▓реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЗрдВ рдкреВрд░реА рдХрд░ рд▓реА рд╣реИрдВред

sudo yum install gcc pcre-devel tar make -y

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИ рдпрд╛ рдирд╣реАрдВ HAProxy рдбрд╛рдЙрдирд▓реЛрдб рдкреЗрдЬ.

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 рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдиреА /etc/init.d рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред рдлрд╝рд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓реЗ, рдФрд░ рдлрд┐рд░ рд╕рд┐рд╕реНрдЯрдордб рдбреЗрдореЙрди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ:

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 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкреГрд╖реНрда рдкрд░рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдкрд░рд┐рд╡рд╣рди рдкрд░рдд рдкрд░ рднрд╛рд░ рд╕рдВрддреБрд▓рди (рдкрд░рдд 4)

рдЖрдЗрдП рдмреБрдирд┐рдпрд╛рджреА рд╕реЗрдЯрдЕрдк рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдИ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ vi рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде:

sudo vi /etc/haproxy/haproxy.cfg

рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝реЗрдВ. рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рд╕рд░реНрд╡рд░ рдХрд╛ рдирд╛рдо рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдкреГрд╖реНрда рдкрд░ рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдХреЛ рдХреНрдпрд╛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдирд┐рдЬреА_рдЖрдИрдкреА - рд╕рд░реНрд╡рд░ рдХреЗ рдирд┐рдЬреА рдЖрдИрдкреА рдкрддреЗ рдЬрд┐рди рдкрд░ рдЖрдк рд╡реЗрдм рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдк рдирд┐рдЬреА рдЖрдИрдкреА рдкрддреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдкрдХреНрд▓рд╛рдЙрдб рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рдкрд░ рдФрд░ рдЯреИрдм рдкрд░ рдкреНрд░рд╛рдЗрд╡реЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рд╡реНрдпрдВрдЬрдХ рд╕реВрдЪреА рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ.

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

рдпрд╣ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рд▓реЗрдпрд░ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ (рд▓реЗрдпрд░ 4) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдкреЛрд░реНрдЯ 80 рдкрд░ http_front рд╢реНрд░рд╡рдг рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдлрд┐рд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ http_back рдирд╛рдордХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреИрдХрдПрдВрдб рдкрд░ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрдБрдХрдбрд╝реЗ /haproxy?stats рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдкреГрд╖реНрда рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рд╡рд┐рднрд┐рдиреНрди рднрд╛рд░ рд╕рдВрддреБрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рджрдоред

рдмреИрдХрдПрдВрдб рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕рд░реНрд╡рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╕реЗ HAProxy рдХреЛ рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреЗ рд▓рд┐рдП рдЗрди рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред

рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХрдиреЗрдХреНрд╢рди рдмреИрдХрдПрдВрдб рдореЗрдВ рдХрд┐рд╕ рд╕рд░реНрд╡рд░ рдХреЛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк рджрд┐рдП рдЧрдП рд╣реИрдВ:

  • рд░рд╛рдЙрдВрдб рд░реЛрдмрд┐рди: рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ рдХреЛ рдЙрд╕рдХреЗ рд╡рдЬрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд╛рд░реА-рдмрд╛рд░реА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рд╕рд░реНрд╡рд░ рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рд░рд╣рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рдирд┐рд╖реНрдкрдХреНрд╖ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИред рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЧрддрд┐рд╢реАрд▓ рд╣реИ, рдЬреЛ рд╕рд░реНрд╡рд░ рдХреЗ рд╡рдЬрди рдХреЛ рддреБрд░рдВрдд рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  • рд▓рд┐рд╕реНрдЯрдХреЙрди: рд╕рдмрд╕реЗ рдХрдо рдХрдиреЗрдХреНрд╢рди рд╡рд╛рд▓рд╛ рд╕рд░реНрд╡рд░ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред рд░рд╛рдЙрдВрдб рд░реЙрдмрд┐рди рд╕рдорд╛рди рд▓реЛрдб рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдмреАрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрд▓рдбреАрдПрдкреА, рдПрд╕рдХреНрдпреВрдПрд▓, рдЯреАрдПрд╕рдИ рдЗрддреНрдпрд╛рджрд┐ рдЬреИрд╕реЗ рд▓рдВрдмреЗ рд╕рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ HTTP рдЬреИрд╕реЗ рдЫреЛрдЯреЗ рд╕рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред
  • рдкреНрд░рдердо: рдЙрдкрд▓рдмреНрдз рдХрдиреЗрдХреНрд╢рди рд╕реНрд▓реЙрдЯ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рд╕рд░реНрд╡рд░ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдХреЛ рдирд┐рдореНрдирддрдо рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЖрдИрдбреА рд╕реЗ рдЙрдЪреНрдЪрддрдо рддрдХ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдлрд╝рд╛рд░реНрдо рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдХреЛрдИ рд╕рд░реНрд╡рд░ рдореИрдХреНрд╕рдХреЙрди рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдЧрд▓реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рд╕реНрд░реЛрдд: рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕рд╛ рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛, рд╕реНрд░реЛрдд рдЖрдИрдкреА рдкрддреЗ рдХреЛ рд╣реИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЪрд▓ рд░рд╣реЗ рд╕рд░реНрд╡рд░ рдХреЗ рдХреБрд▓ рд╡рдЬрди рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣, рд╡рд╣реА рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ рд╕рд░реНрд╡рд░ рд╡рд╣реА рд░рд╣реЗрдВрдЧреЗред

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрддрд░ рдкрд░ рд▓реЛрдб рд╕рдВрддреБрд▓рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ (рдкрд░рдд 7)

рдПрдХ рдЕрдиреНрдп рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЗрдпрд░ (рд▓реЗрдпрд░ 7) рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╣реЛрд╕реНрдЯ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЛ рдереНрд░реЙрдЯрд▓ рдХрд░рдХреЗ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпреВрдЖрд░рдПрд▓ рджреНрд╡рд╛рд░рд╛ред

рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 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

рдлреНрд░рдВрдЯрдПрдВрдб url_blog рдирд╛рдордХ рдПрдХ ACL рдирд┐рдпрдо рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ /blog рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрдереЛрдВ рд╡рд╛рд▓реЗ рд╕рднреА рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдпреВрдЬрд╝_рдмреИрдХрдПрдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпреВрдЖрд░рдПрд▓_рдмреНрд▓реЙрдЧ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмреНрд▓реЙрдЧ_рдмреИрдХ рдирд╛рдордХ рдмреИрдХрдПрдВрдб рджреНрд╡рд╛рд░рд╛ рдкрд░реЛрд╕рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЕрдиреНрдп рд╕рднреА рдЕрдиреБрд░реЛрдз рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреИрдХрдПрдВрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдмреИрдХрдПрдВрдб рдХреА рдУрд░, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рджреЛ рд╕рдореВрд╣ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ: http_back, рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рдФрд░ рдПрдХ рдирдпрд╛ рдЬрд┐рд╕реЗ blog_back рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ example.com/blog рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдирд┐рдореНрди рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ HAProxy рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ:

sudo systemctl restart haproxy

рдпрджрд┐ рдЖрдкрдХреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рдЪреЗрддрд╛рд╡рдиреА рдпрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрдирдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд╛рдВрдЪреЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдмрдирд╛ рд▓рд┐рдП рд╣реИрдВ, рдлрд┐рд░ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рд╕реЗрдЯрдЕрдк рдХрд╛ рдкрд░реАрдХреНрд╖рдг

рдПрдХ рдмрд╛рд░ HAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛ рдЬрд╛рдП рдФрд░ рдЪрд▓ рдЬрд╛рдП, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╕рд░реНрд╡рд░ рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдИрдкреА рдкрддрд╛ рдЦреЛрд▓реЗрдВ рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдмреИрдХрдПрдВрдб рд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдпреВрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдкрд░ рдПрдХ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдкреГрд╖реНрда рдмрдирд╛рддрд╛ рд╣реИред

http://load_balancer_public_ip/haproxy?stats

рдЬрдм рдЖрдк рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдкреГрд╖реНрда рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдкрдХреЗ рд╕рднреА рд╕рд░реНрд╡рд░ рд╣рд░рд╛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕реЗрдЯрдЕрдк рд╕рдлрд▓ рд░рд╣рд╛!

CentOS рдкрд░ HAProxy рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдкреГрд╖реНрда рдореЗрдВ рдЖрдкрдХреЗ рд╡реЗрдм рд╣реЛрд╕реНрдЯ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдк/рдбрд╛рдЙрди рд╕рдордп рдФрд░ рд╕рддреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐ рд╕рд░реНрд╡рд░ рдХреЛ рд▓рд╛рд▓ рд░рдВрдЧ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдЪрд╛рд▓реВ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдорд╢реАрди рд╕реЗ рдкрд┐рдВрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдХрд╛ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ HTTP рдХрдиреЗрдХреНрд╢рди рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ HAProxy рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ:

sudo systemctl status haproxy

рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдкреГрд╖реНрда рдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдБрдХрдбрд╝реЗ рдкреГрд╖реНрда рдХреЛ рдХреЗрд╡рд▓ рд╕рд╛рдордиреЗ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рднреА рдХреЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЕрдкрдиреА haproxy.cfg рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдПрдХ рдХрд╕реНрдЯрдо рдкреЛрд░реНрдЯ рдирдВрдмрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо ╨╕ рдкрд╛рд╕рд╡рд░реНрдб рдХрд┐рд╕реА рд╕реБрд░рдХреНрд╖рд┐рдд рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП:

listen stats
   bind *:8181
   stats enable
   stats uri /
   stats realm Haproxy Statistics
   stats auth username:password

рдПрдХ рдирдпрд╛ рд╢реНрд░реЛрддрд╛ рд╕рдореВрд╣ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдкреБрд░рд╛рдиреЗ рдЖрдБрдХрдбрд╝реЗ рдпреВрд░реА рд▓рд┐рдВрдХ рдХреЛ рдлреНрд░рдВрдЯрдПрдВрдб рд╕рдореВрд╣ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВред рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ HAProxy рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред

sudo systemctl restart haproxy

рдлрд┐рд░ рдирдП рдкреЛрд░реНрдЯ рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред

http://load_balancer_public_ip:8181

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд╕рднреА рд╕рд░реНрд╡рд░ рдЕрднреА рднреА рд╣рд░реЗ рджрд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреЛрд░реНрдЯ рдирдВрдмрд░ рдХреЗ рдХреЗрд╡рд▓ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдЖрдИрдкреА рдЦреЛрд▓реЗрдВред

http://load_balancer_public_ip/

рдпрджрд┐ рдЖрдкрдХреЗ рдмреИрдХ-рдПрдВрдб рд╕рд░реНрд╡рд░ рдкрд░ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓реИрдВрдбрд┐рдВрдЧ рдкреГрд╖реНрда рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рд╣реЛрд╕реНрдЯ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓рддреА рд╣реИред рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрддреБрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЪреЗрдХ рдЖрдЙрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╕рдВрдкреВрд░реНрдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг.

рдирд┐рд╖реНрдХрд░реНрд╖: HAProxy рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░

рдЕрдкрдиреЗ HAProxy рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдзрд╛рдИ! рдмреБрдирд┐рдпрд╛рджреА рд▓реЛрдб рд╕рдВрддреБрд▓рди рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рднреА, рдЖрдк рдЕрдкрдиреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЙрдкрд▓рдмреНрдзрддрд╛ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЧрд╛рдЗрдб HAProxy рдХреЗ рд╕рд╛рде рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдЪрдп рдорд╛рддреНрд░ рд╣реИ, рдЬреЛ рддреНрд╡рд░рд┐рдд рд╕реЗрдЯрдЕрдк рдЧрд╛рдЗрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕рдХреНрд╖рдо рд╣реИред рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ рд╡реНрдпрд╛рдкрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг, HAProxy рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ, рдФрд░ рдлрд┐рд░ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджрди рдкрд░рд┐рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред

рд╣реЗрдбрд░реВрдо рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд╡реЗрдм рд╕реЗрд╡рд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХрд╛рдзрд┐рдХ рд╣реЛрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╕реНрд╡рдпрдВ рдЕрднреА рднреА рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдмрд┐рдВрджреБ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдПрдХрд╛рдзрд┐рдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░реЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдЖрдИрдкреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдореЗрдВ рдФрд░ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдкрдХреНрд▓рд╛рдЙрдб рдкрд░ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ.

рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА "рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ. рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдФрд░ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ"***

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ