CentOS рд╡рд░ HAProxy рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдд рдЖрд╣реЗ

рд▓реЗрдЦрд╛рдЪрд╛ рдЕрдиреБрд╡рд╛рдж рдЕрднреНрдпрд╛рд╕рдХреНрд░рдо рд╕реБрд░реВ рд╣реЛрдгреНрдпрд╛рдЪреНрдпрд╛ рдЖрджрд▓реНрдпрд╛ рджрд┐рд╡рд╢реА рддрдпрд╛рд░ рдХреЗрд▓рд╛ рд╣реЛрддрд╛ "рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ. рдЖрднрд╛рд╕реАрдХрд░рдг рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ"

CentOS рд╡рд░ HAProxy рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдд рдЖрд╣реЗ

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

HAProxy рд╕рдВрд╕рд╛рдзрдирд╛рдЪрд╛ рд╡рд╛рдкрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдереНрд░реВрдкреБрдЯ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдкреНрд░рддрд┐рд╕рд╛рдж рд╡реЗрд│ рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╡реИрдпрдХреНрддрд┐рдХ рд╕рдВрд╕рд╛рдзрдирд╛рдЪрд╛ рдУрд╡реНрд╣рд░рд▓реЛрдбрд┐рдВрдЧ рдЯрд╛рд│рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЗ. рд╣реЗ рд╕реЗрдВрдЯреЛрд╕ 8 рд╕рд╛рд░рдЦреНрдпрд╛ рд╡рд┐рд╡рд┐рдз рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгрд╛рдВрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдЬреНрдпрд╛рд╡рд░ рдЖрдореНрд╣реА рдпрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рддрд╕реЗрдЪ рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВ. рдбреЗрдмрд┐рдпрди 8 ╨╕ рдЙрдмрдВрдЯреВ 16.

CentOS рд╡рд░ HAProxy рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдд рдЖрд╣реЗ

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

рд╢реЗрд╡рдЯреА, рд╕реЗрдВрдЯреЛрд╕ 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

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

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 рд▓рд╛ рд╢рдХреНрдп рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛ рд░рд╛рдКрдВрдб-рд░реЙрдмрд┐рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдордиреБрд╕рд╛рд░ рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧрд╕рд╛рдареА рд╣реЗ рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдорд┐рд│рддреЗ.

рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧ рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪрд╛ рд╡рд╛рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдХрдиреЗрдХреНрд╢рди рдмреЕрдХрдПрдВрдбрдордзреАрд▓ рдХреЛрдгрддреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдпреЗрдереЗ рдХрд╛рд╣реА рдЙрдкрдпреБрдХреНрдд рдкрд░реНрдпрд╛рдп рдЖрд╣реЗрдд:

  • рд░рд╛рдЙрдВрдбрд░реЙрдмрд┐рди: рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡реНрд╣рд░ рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рдЬрдирд╛рдиреБрд╕рд╛рд░ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ. рдЬреЗрд╡реНрд╣рд╛ рд╕рд░реНрд╡реНрд╣рд░рдЪрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реЗрд│ рд╕рдорд╛рди рд░реАрддреАрдиреЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рддреЗрд╡реНрд╣рд╛ рд╣рд╛ рд╕рд░реНрд╡рд╛рдд рдЧреБрд│рдЧреБрд│реАрдд рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рдЪрд╛рдВрдЧрд▓рд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрд╣реЗ. рд╣рд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдбрд╛рдпрдиреЕрдорд┐рдХ рдЖрд╣реЗ, рдЬреНрдпрд╛рдореБрд│реЗ рд╕рд░реНрд╡реНрд╣рд░рдЪреЗ рд╡рдЬрди рдлреНрд▓рд╛рдпрд╡рд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.
  • Leastconn: рд╕рд░реНрд╡рд╛рдд рдХрдореА рдХрдиреЗрдХреНрд╢рди рдЕрд╕рд▓реЗрд▓рд╛ рд╕рд░реНрд╡реНрд╣рд░ рдирд┐рд╡рдбрд▓рд╛ рдЖрд╣реЗ. рд╕рдорд╛рди рднрд╛рд░ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░ рджрд░рдореНрдпрд╛рди рд░рд╛рдКрдВрдб рд░реЙрдмрд┐рди рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рд╣рд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ LDAP, SQL, TSE, рдЗрддреНрдпрд╛рджреАрд╕рд╛рд░рдЦреНрдпрд╛ рджреАрд░реНрдШ рд╕рддреНрд░рд╛рдВрд╕рд╛рдареА рдХреЗрд▓реА рдЬрд╛рддреЗ, рдкрд░рдВрддреБ HTTP рд╕рд╛рд░рдЦреНрдпрд╛ рд▓рд╣рд╛рди рд╕рддреНрд░рд╛рдВрд╕рд╛рдареА рддреЗ рдлрд╛рд░рд╕реЗ рдпреЛрдЧреНрдп рдирд╛рд╣реА.
  • рдкрд╣рд┐рд▓рд╛: рдЙрдкрд▓рдмреНрдз рдХрдиреЗрдХреНрд╢рди рд╕реНрд▓реЙрдЯрд╕рд╣ рдкреНрд░рдердо рд╕рд░реНрд╡реНрд╣рд░ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЛ. рд╕рд░реНрд╡реНрд╣рд░ рд╕рд░реНрд╡рд╛рдд рдХрдореА рдЕрдВрдХреАрдп ID рдкрд╛рд╕реВрди рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкрд░реНрдпрдВрдд рдирд┐рд╡рдбрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреЗ рдлрд╛рд░реНрдордордзреАрд▓ рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рд╕реНрдерд╛рдирд╛рд╡рд░ рдбреАрдлреЙрд▓реНрдЯ рдЕрд╕рддрд╛рдд. рдПрдХрджрд╛ рд╕рд░реНрд╡реНрд╣рд░ maxconn рд╡рд░ рдкреЛрд╣реЛрдЪрд▓рд╛ рдХреА, рдкреБрдвреАрд▓ рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ.
  • рд╕реНрддреНрд░реЛрдд: рдХреЛрдгрддреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рд╡рд┐рдирдВрддреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрдИрд▓ рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрддреНрд░реЛрдд IP рдкрддреНрддрд╛ рд╣реЕрд╢ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдПрдХреВрдг рд╡рдЬрдирд╛рдиреЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рд╕рдорд╛рди рдХреНрд▓рд╛рдпрдВрдЯрдЪрд╛ IP рдкрддреНрддрд╛ рдиреЗрд╣рдореА рддреНрдпрд╛рдЪ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЬрд╛рдИрд▓, рддрд░ рд╕рд░реНрд╡реНрд╣рд░ рддреЛрдЪ рд░рд╛рд╣реАрд▓.

рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрддрд░рд╛рд╡рд░ рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдгреЗ (рд▓реЗрдпрд░ 7)

рджреБрд╕рд░рд╛ рдЙрдкрд▓рдмреНрдз рдкрд░реНрдпрд╛рдп рдореНрд╣рдгрдЬреЗ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЗрдпрд░ (рд▓реЗрдпрд░ 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

рдлреНрд░рдВрдЯрдПрдВрдб url_blog рдирд╛рд╡рд╛рдЪрд╛ ACL рдирд┐рдпрдо рдШреЛрд╖рд┐рдд рдХрд░рддреЛ рдЬреЛ /blog рдиреЗ рд╕реБрд░реВ рд╣реЛрдгрд╛рд░реНтАНрдпрд╛ рдкрдерд╛рдВрд╕рд╣ рд╕рд░реНрд╡ рдХрдиреЗрдХреНрд╢рдирд▓рд╛ рд▓рд╛рдЧреВ рд╣реЛрддреЛ. Use_backend рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рдХреА url_blog рд╕реНрдерд┐рддреАрд╢реА рдЬреБрд│рдгрд╛рд░реЗ рдХрдиреЗрдХреНрд╢рди blog_back рдирд╛рд╡рд╛рдЪреНрдпрд╛ рдмреЕрдХрдПрдВрдбрджреНрд╡рд╛рд░реЗ рджрд┐рд▓реЗ рдЬрд╛рд╡реЗ рдЖрдгрд┐ рдЗрддрд░ рд╕рд░реНрд╡ рд╡рд┐рдирдВрддреНрдпрд╛ рдбреАрдлреЙрд▓реНрдЯ рдмреЕрдХрдПрдВрдбрджреНрд╡рд╛рд░реЗ рд╣рд╛рддрд╛рд│рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.

рдмреЕрдХрдПрдВрдб рдмрд╛рдЬреВрд▓рд╛, рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдЪреЗ рджреЛрди рдЧрдЯ рд╕реЗрдЯ рдХрд░рддреЗ: http_back, рдкреВрд░реНрд╡реАрдкреНрд░рдорд╛рдгреЗ, рдЖрдгрд┐ blog_back рдирд╛рд╡рд╛рдЪрд╛ рдПрдХ рдирд╡реАрди, рдЬреЛ example.com/blog рд▓рд╛ рдХрдиреЗрдХреНрд╢рди рд╣рд╛рддрд╛рд│рддреЗ.

рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдмрджрд▓рд▓реНрдпрд╛рдирдВрддрд░, рдлрд╛рдЗрд▓ рдЬрддрди рдХрд░рд╛ рдЖрдгрд┐ рдЦрд╛рд▓реАрд▓ рдЖрджреЗрд╢ рд╡рд╛рдкрд░реВрди HAProxy рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рд╛:

sudo systemctl restart haproxy

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рджрд░рдореНрдпрд╛рди рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЛрдгрддреЗрд╣реА рдЪреЗрддрд╛рд╡рдгреА рдХрд┐рдВрд╡рд╛ рддреНрд░реБрдЯреА рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реНрдпрд╛рд╕, рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рддреБрдордЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рддрдкрд╛рд╕рд╛ рдЖрдгрд┐ рддреБрдореНрд╣реА рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реНрд╕ рдЖрдгрд┐ рдлреЛрд▓реНрдбрд░реНрд╕ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛, рдирдВрддрд░ рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рд╛.

рд╕реЗрдЯрдЕрдкрдЪреА рдЪрд╛рдЪрдгреА рдХрд░рдд рдЖрд╣реЗ

рдПрдХрджрд╛ HAProxy рдХреЙрдиреНрдлрд┐рдЧрд░ рдЖрдгрд┐ рдЪрд╛рд▓реВ рдЭрд╛рд▓реНрдпрд╛рд╡рд░, рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рд╕рд░реНрд╡реНрд╣рд░рдЪрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ IP рдкрддреНрддрд╛ рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдЙрдШрдбрд╛ рдЖрдгрд┐ рддреБрдореНрд╣реА рдмреЕрдХрдПрдВрдбрд╢реА рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рдЖрд╣рд╛рдд рдХрд╛ рддреЗ рддрдкрд╛рд╕рд╛. рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреАрд▓ рд╕реНрдЯреЕрдЯреНрд╕ рдпреВрд░реА рдкреЕрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреНрддреНрдпрд╛рд╡рд░ рдПрдХ рдЖрдХрдбреЗрд╡рд╛рд░реА рдкреГрд╖реНрда рддрдпрд╛рд░ рдХрд░рддреЗ.

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

рдирд╡реАрди рд╢реНрд░реЛрддрд╛ рдЧрдЯ рдЬреЛрдбрд▓реНрдпрд╛рдирдВрддрд░, рдлреНрд░рдВрдЯрдПрдВрдб рдЧреНрд░реБрдкрдордзреВрди рдЬреБрдиреА рдЖрдХрдбреЗрд╡рд╛рд░реА uri рд▓рд┐рдВрдХ рдХрд╛рдвреВрди рдЯрд╛рдХрд╛. рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рд╡рд░, рдлрд╛рдЗрд▓ рд╕реЗрд╡реНрд╣ рдХрд░рд╛ рдЖрдгрд┐ HAProxy рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рд╛.

sudo systemctl restart haproxy

рдирдВрддрд░ рдирд╡реАрди рдкреЛрд░реНрдЯ рдирдВрдмрд░рд╕рд╣ рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рдкреБрдиреНрд╣рд╛ рдЙрдШрдбрд╛ рдЖрдгрд┐ рддреБрдореНрд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛рдирд╛рд╡ рдЖрдгрд┐ рдкрд╛рд╕рд╡рд░реНрдбрд╕рд╣ рд▓реЙрдЧ рдЗрди рдХрд░рд╛.

http://load_balancer_public_ip:8181

рддреБрдордЪреЗ рд╕рд░реНрд╡ рд╕рд░реНрд╡реНрд╣рд░ рдЕрдЬреВрдирд╣реА рд╣рд┐рд░рд╡реЗ рджрд┐рд╕рдд рдЕрд╕рд▓реНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛ рдЖрдгрд┐ рдирдВрддрд░ рддреБрдордЪреНрдпрд╛ рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреЛрд░реНрдЯ рдирдВрдмрд░рд╢рд┐рд╡рд╛рдп рдлрдХреНрдд рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ IP рдЙрдШрдбрд╛.

http://load_balancer_public_ip/

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

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

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

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

рдЕрднреНрдпрд╛рд╕рдХреНрд░рдорд╛рдмрджреНрджрд▓ рдЕрдзрд┐рдХ "рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ. рдЖрднрд╛рд╕реАрдХрд░рдг рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ"***

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛