เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ HAProxy load balancer เปƒเบ™ CentOS

เบเบฒเบ™โ€‹เปเบ›โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบ‚เบญเบ‡โ€‹เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบเบฐโ€‹เบเบฝเบกโ€‹เปƒเบ™โ€‹เบชเบฐโ€‹เบกเบฒเบ”โ€‹เบชเบฐโ€‹เบกเบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบงเบดโ€‹เบŠเบฒโ€‹เบเบฒเบ™ "Linux Administrator. Virtualization เปเบฅเบฐ clustering"

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ HAProxy load balancer เปƒเบ™ CentOS

เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบปเปˆเบงเป„เบ›เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบšเบ•เบฒเบกเปเบ™เบงเบ™เบญเบ™เปƒเบ™เบ—เบปเปˆเบง hosts เบซเบผเบฒเบเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบกเบตเบˆเบธเบ”เบ”เบฝเบงเบ‚เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™. HAProxy เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบŠเบญเบšเปเบงเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบเบฑเบ‡เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปเบฅเบฐเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบ•เบปเบงเปเบ—เบ™.

HAProxy เบžเบฐเบเบฒเบเบฒเบกเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เปƒเบŠเป‰เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบซเป‰เบชเบนเบ‡เบชเบธเบ”, เบซเบผเบธเบ”เป€เบงเบฅเบฒเบ•เบญเบšเป‚เบ•เป‰เปƒเบซเป‰เปœเป‰เบญเบเบ—เบตเปˆเบชเบธเบ”, เปเบฅเบฐเบซเบผเบตเบเบฅเป‰เบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปƒเบ”เบ™เบถเปˆเบ‡เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบ Linux เบ—เบตเปˆเบซเบผเบฒเบเบซเบผเบฒเบ, เป€เบŠเบฑเปˆเบ™ CentOS 8, เป€เบŠเบดเปˆเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเปƒเบ™เบ„เบนเปˆเบกเบทเบ™เบตเป‰, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบฅเบฐเบšเบปเบšเบ•เปˆเบฒเบ‡เป†. Debian 8 ะธ Ubuntu 16.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ HAProxy load balancer เปƒเบ™ CentOS

HAProxy เปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบชเบนเบ‡เบซเบผเบฒเบเปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบงเบฑเบšเบซเบผเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เบ„เบนเปˆเบกเบทเบ™เบตเป‰เบญเบฐเบ—เบดเบšเบฒเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ HAProxy เป€เบ›เบฑเบ™เบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบขเบนเปˆเปƒเบ™ CentOS 8 cloud host, เป€เบŠเบดเปˆเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบˆเบฐเบชเบปเปˆเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เป€เบ›เบฑเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”, เบ—เปˆเบฒเบ™เบ„เบงเบ™เบกเบตเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”. เป€เบŠเบตเบšเป€เบงเบตเป€เบงเบฑเบšเบ•เป‰เบญเบ‡เปเบฅเปˆเบ™เบขเปˆเบฒเบ‡เปœเป‰เบญเบเบšเปเบฅเบดเบเบฒเบ™เป€เบงเบฑเบšเบžเบทเป‰เบ™เบ–เบฒเบ™เป€เบŠเบฑเปˆเบ™ nginx เบซเบผเบท httpd เป€เบžเบทเปˆเบญเบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡เบžเบงเบเบกเบฑเบ™.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ HAProxy เปƒเบ™ CentOS 8

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ 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

เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฑเบ™เบเบฒเบฅเบฑเบเบชเปเบฒเบฅเบฑเบš binaries เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ HAProxy เป€เบ›เบฑเบ™เบœเบนเป‰เปƒเบŠเป‰เบ›เบปเบเบเบฐเบ•เบด:

sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบžเบฃเบฑเบญเบเบŠเบตเปƒเบซเป‰เบเบฑเบšเบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบ›เบฑเบ™เบšเปเบฅเบดเบเบฒเบ™, เบ„เบฑเบ”เบฅเบญเบเป„เบŸเบฅเปŒ haproxy.init เบˆเบฒเบเบ•เบปเบงเบขเปˆเบฒเบ‡เป„เบ›เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต /etc/init.d เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เปเบเป‰เป„เบ‚เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เป„เบŸเบฅเปŒเป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฐเบ„เบฃเบดเบšเป€เบฎเบฑเบ”เบงเบฝเบ, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ restart systemd daemon:

sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload

เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ restart เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบกเบทเปˆเบญเบฅเบฐเบšเบปเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™:

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, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

เบชเบธเบ”เบ—เป‰เบฒเบ, firewall เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ 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

เป‚เบซเบผเบ”เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Balancer

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ HAProxy เปเบกเปˆเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบžเปเบชเบปเบกเบ„เบงเบ™. เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง, เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เปเบกเปˆเบ™เบšเบญเบ HAProxy เบงเปˆเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ”เบ—เบตเปˆเบกเบฑเบ™เบ„เบงเบ™เบŸเบฑเบ‡เปเบฅเบฐเบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเบ–เปˆเบฒเบเบ—เบญเบ”เบžเบงเบเบกเบฑเบ™.

เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ /etc/haproxy/haproxy.cfg เบ”เป‰เบงเบเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ HAProxy เบขเบนเปˆเปƒเบ™เปœเป‰เบฒเป€เบญเบเบฐเบชเบฒเบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบนเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™.

เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบขเบนเปˆเบŠเบฑเป‰เบ™เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡ (เบŠเบฑเป‰เบ™ 4)

เปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบžเบทเป‰เบ™เบ–เบฒเบ™. เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒ config เปƒเบซเบกเปˆ, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ vi เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰:

sudo vi /etc/haproxy/haproxy.cfg

เป€เบžเบตเปˆเบกเบžเบฒเบเบชเปˆเบงเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปƒเบชเปˆเป„เบŸเบฅเปŒ. เปเบ—เบ™เบ—เบตเปˆ server_name เบชเบดเปˆเบ‡เบ—เบตเปˆเบ„เบงเบ™เป‚เบ—เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™เบซเบ™เป‰เบฒเบชเบฐเบ–เบดเบ•เบด, เปเบฅเบฐ private_ip โ€” เบ—เบตเปˆโ€‹เบขเบนเปˆ 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) เบžเบฒเบเบ™เบญเบเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบงเปˆเบฒ http_front เบŸเบฑเบ‡เบขเบนเปˆเปƒเบ™เบžเบญเบ” 80, เป€เบŠเบดเปˆเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบปเปˆเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป„เบ›เบซเบฒ backend เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบงเปˆเบฒ http_back. เบชเบฐเบ–เบดเบ•เบดเป€เบžเบตเปˆเบกเป€เบ•เบตเบก /haproxy?stats เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปœเป‰เบฒเบชเบฐเบ–เบดเบ•เบดเป„เบ›เบซเบฒเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบฅเบฐเบšเบธ.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ•เปˆเบฒเบ‡เป†.

เบเบฒเบ™เบฅเบฐเบšเบธเป€เบŠเบตเบšเป€เบงเบตเปƒเบ™เบชเปˆเบงเบ™ backend เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ HAProxy เปƒเบŠเป‰เป€เบŠเบตเบšเป€เบงเบตเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบžเบทเปˆเบญเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ•เบฒเบกเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบฎเบญเบšเบงเบฝเบ™เป€เบกเบทเปˆเบญเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบ”เปƒเบ™ backend เปเบ•เปˆเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เบทเบเบชเบปเปˆเบ‡เบเบฑเบš. เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฒเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”:

  • Roundrobin: เปเบ•เปˆเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™เบ•เบฒเบกเบ™เป‰เปเบฒเบซเบ™เบฑเบเบ‚เบญเบ‡เบกเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบฅเบฝเบšเบ‡เปˆเบฒเบ เปเบฅเบฐเบเบธเบ•เบดเบ—เบณเบ—เบตเปˆเบชเบธเบ” เป€เบกเบทเปˆเบญเป€เบงเบฅเบฒเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เบญเบ‡เป€เบŠเบตเบšเป€เบงเบตเบเบฑเบ‡เบ„เบปเบ‡เปเบˆเบเบขเบฒเบเบขเปˆเบฒเบ‡เป€เบ—เบปเปˆเบฒเบเบฑเบ™. เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ™เบตเป‰เปเบกเปˆเบ™เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เป€เบฎเบฑเบ”เปƒเบซเป‰เบ™เปเป‰เบฒเปœเบฑเบเบ‚เบญเบ‡เป€เบŠเบตเบšเป€เบงเบตเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเป„เบ”เป‰เปƒเบ™เป€เบงเบฅเบฒเบšเบดเบ™.
  • เบ™เป‰เบญเบเบชเบธเบ”: เป€เบŠเบตเบšเป€เบงเบตเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบ–เบทเบเป€เบฅเบทเบญเบ. Round robin เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เป‚เบซเบผเบ”เบ”เบฝเบงเบเบฑเบ™. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ algorithm เบ™เบตเป‰เปเบกเปˆเบ™เปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบเบญเบ‡เบ›เบฐเบŠเบธเบกเบเบฒเบงเป€เบŠเบฑเปˆเบ™ LDAP, SQL, TSE, เปเบฅเบฐเบญเบทเปˆเบ™เป†, เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบญเบ‡เบ›เบฐเบŠเบธเบกเบชเบฑเป‰เบ™เป€เบŠเบฑเปˆเบ™ HTTP.
  • เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”: เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบกเบตเบŠเปˆเบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบกเบตเบขเบนเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เป€เบŠเบตเบšเป€เบงเบตเบ–เบทเบเป€เบฅเบทเบญเบเบˆเบฒเบ ID เบ•เบปเบงเป€เบฅเบเบ•เปเปˆเบฒเบชเบธเบ”เป„เบ›เบซเบฒเบชเบนเบ‡เบชเบธเบ”, เป€เบŠเบดเปˆเบ‡เบ•เบฑเป‰เบ‡เป„เบงเป‰เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบณเปเปœเปˆเบ‡เป€เบŠเบตเบšเป€เบงเบตเปƒเบ™เบŸเบฒเบก. เป€เบกเบทเปˆเบญเป€เบŠเบตเบšเป€เบงเบตเป„เบ›เบฎเบญเบ” maxconn, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ•เปเปˆเป„เบ›เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.
  • เบ—เบตเปˆโ€‹เบกเบฒโ€‹: เบ—เบตเปˆเบขเบนเปˆ IP เปเบซเบผเปˆเบ‡เปเบกเปˆเบ™ hashed เปเบฅเบฐเปเบšเปˆเบ‡เบญเบญเบเป‚เบ”เบเบ™เป‰เปเบฒเบซเบ™เบฑเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเปเบฅเปˆเบ™เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป. เบงเบดเบ—เบตเบ™เบตเป‰, เบ—เบตเปˆเบขเบนเปˆ IP เบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒเบ”เบฝเบงเบเบฑเบ™เบˆเบฐเป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ”เบฝเบงเบเบฑเบ™, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเบ„เบทเบเบฑเบ™.

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ (เบŠเบฑเป‰เบ™ 7)

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบกเปˆเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เบŠเบฑเป‰เบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ (เบŠเบฑเป‰เบ™ 7), เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบขเบนเปˆเปƒเบ™เป‚เบฎเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบ•เบปเบงเบขเปˆเบฒเบ‡เป‚เบ”เบ URL.

เป€เบ›เบตเบ”เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ HAProxy เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเปเบเป‰เป„เบ‚เบ‚เปเป‰เบ„เบงเบฒเบก:

sudo vi /etc/haproxy/haproxy.cfg

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปˆเบงเบ™ frontend เปเบฅเบฐ backend เบ•เบฒเบกเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰:

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

Frontend เบ›เบฐเบเบฒเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบš ACL เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ url_blog เบ—เบตเปˆเปƒเบŠเป‰เบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบกเบตเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ /blog. Use_backend เบฅเบฐเบšเบธเบงเปˆเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบเบปเบ‡เบเบฑเบšเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ url_blog เบ„เบงเบ™เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบ”เบ backend เบ—เบตเปˆเบกเบตเบŠเบทเปˆ blog_back, เปเบฅเบฐเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบญเบทเปˆเบ™เป†เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบ backend เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เปƒเบ™เบ”เป‰เบฒเบ™ backend, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบˆเบฐเบ•เบฑเป‰เบ‡เบชเบญเบ‡เบเบธเปˆเบกเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ: http_back, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบšเบเปˆเบญเบ™, เปเบฅเบฐเบญเบฑเบ™เปƒเบซเบกเปˆเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ blog_back, เป€เบŠเบดเปˆเบ‡เบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš example.com/blog.

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบšเบฑเบ™เบ—เบถเบเป„เบŸเบฅเปŒเปเบฅเบฐ restart HAProxy เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

sudo systemctl restart haproxy

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเป€เบ•เบทเบญเบ™เบซเบผเบทเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบžเบงเบเบกเบฑเบ™เปเบฅเบฐเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เป„เบ”เป‰เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเปเบฅเบฐเป‚เบŸเบ™เป€เบ”เบตเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบฅเบญเบ‡เบ›เบดเบ”เป€เบ›เบตเบ”เปƒเบซเบกเปˆเบญเบตเบเบ„เบฑเป‰เบ‡.

เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹

เป€เบกเบทเปˆเบญ HAProxy เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเปเบฅเปˆเบ™, เป€เบ›เบตเบ”เบ—เบตเปˆเบขเบนเปˆ IP เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡ load balancer เปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเปเบฅเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ—เปˆเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš backend เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡. เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบชเบฐเบ–เบดเบ•เบด uri เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบˆเบฐเบชเป‰เบฒเบ‡เบซเบ™เป‰เบฒเบชเบฐเบ–เบดเบ•เบดเบขเบนเปˆเปƒเบ™เบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบฅเบฐเบšเบธ.

http://load_balancer_public_ip/haproxy?stats

เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป‚เบซเบฅเบ”เบซเบ™เป‰เบฒเบชเบฐเบ–เบดเบ•เบด, เบ–เป‰เบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบชเบตเบ‚เบฝเบง, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”!

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ HAProxy load balancer เปƒเบ™ CentOS

เบซเบ™เป‰เบฒเบชเบฐเบ–เบดเบ•เบดเบกเบตเบšเบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเป€เบงเบฑเบšเป‚เบฎเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบฅเบงเบกเบ—เบฑเบ‡เป€เบงเบฅเบฒเบ‚เบถเป‰เบ™ / เบฅเบปเบ‡เปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบเบญเบ‡เบ›เบฐเบŠเบธเบก. เบ–เป‰เบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ–เบทเบเบซเบกเบฒเบเป€เบ›เบฑเบ™เบชเบตเปเบ”เบ‡, เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป„เบ”เป‰เป€เบ›เบตเบ”เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” ping เบกเบฑเบ™เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡ load balancer.

เบ–เป‰เบฒเบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบšเปเปˆเบ•เบญเบšเบชเบฐเปœเบญเบ‡, เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ 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 link เบญเบญเบเบˆเบฒเบเบเบธเปˆเบก frontend. เป€เบกเบทเปˆเบญเบชเปเบฒเป€เบฅเบฑเบ”, เบšเบฑเบ™เบ—เบถเบเป„เบŸเบฅเปŒเปเบฅเบฐ restart HAProxy.

sudo systemctl restart haproxy

เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบญเบตเบเบ„เบฑเป‰เบ‡เบ”เป‰เบงเบเปเบฒเบเป€เบฅเบเบžเบญเบ”เปƒเปเปˆ เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเบ”เป‰เบงเบเบŠเบทเปˆเบœเบนเป‰เปƒเบŠเป‰ เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

http://load_balancer_public_ip:8181

เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฐเปเบ”เบ‡เบชเบตเบ‚เบฝเบงเปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบ›เบตเบ”เบžเบฝเบ‡เปเบ•เปˆ load balancer IP เป‚เบ”เบเบšเปเปˆเบกเบตเบ•เบปเบงเป€เบฅเบเบžเบญเบ”เปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

http://load_balancer_public_ip/

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบšเบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ”เบดเบ™เปƒเบ™เป€เบŠเบตเบŸเป€เบงเบต back-end เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบ—เปˆเบฒเบ™เบˆเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบ—เบธเบเป†เบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เป‚เบซเบผเบ”เบซเบ™เป‰เบฒเปƒเบซเบกเปˆ, เบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเบ•เบญเบšเบˆเบฒเบเป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบญเบ‡เปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เบžเบฒเบเบชเปˆเบงเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ เบซเบผเบทเบเบงเบ”เป€เบšเบดเปˆเบ‡เบญเบญเบ เป€เบญเบเบฐเบชเบฒเบ™เบ„เบปเบšเบ–เป‰เบงเบ™.

เบชเบฐเบซเบผเบธเบš: HAProxy Load Balancer

เบ‚เปเบชเบฐเปเบ”เบ‡เบ„เบงเบฒเบกเบเบดเบ™เบ”เบตเบ—เบตเปˆเบชเบณเป€เบฅเบฑเบ”เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ” HAProxy เบ‚เบญเบ‡เบ—เปˆเบฒเบ™! เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ. เบ„เบนเปˆเบกเบทเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบเบฑเบš HAProxy, เป€เบŠเบดเปˆเบ‡เบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบซเบผเบฒเบเบเปˆเบงเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบเบงเบกเป€เบญเบปเบฒเปƒเบ™เบ„เบนเปˆเบกเบทเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป„เบง. เบžเบงเบเป€เบฎเบปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เบปเบ”เบฅเบญเบ‡เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰ เป€เบญเบเบฐเบชเบฒเบ™เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡, เบกเบตเบขเบนเปˆเปƒเบ™ HAProxy, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบงเบฒเบ‡เปเบœเบ™เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบˆเบปเป‰เบฒเบžเบฒเบšเบซเบผเบฒเบเป€เบžเบทเปˆเบญเบ›เบปเบเบ›เป‰เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบงเบฑเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ”เป‰เบงเบ headroom, เบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบญเบฒเบ”เบˆเบฐเบเบฑเบ‡เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบˆเบธเบ”เบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบง. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบžเป‰เบญเบกเปƒเบซเป‰เบชเบนเบ‡เบ•เบทเปˆเบกเบญเบตเบเป‚เบ”เบเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ IP เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบซเบผเบฒเบเบญเบฑเบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบฎเบนเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เปƒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ เบšเบปเบ”เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบ—เบตเปˆเบขเบนเปˆ IP เบ—เบตเปˆเบฅเบญเบเบขเบนเปˆเปƒเบ™ UpCloud.

เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบซเบผเบฑเบเบชเบนเบ” "Linux Administrator. Virtualization เปเบฅเบฐ clustering"***

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™