เบงเบดเบ—เบตเบเบฒเบ™เบชเบทเบšเบ•เปเปˆเบ‚เบฝเบ™ Web-GUI เบชเปเบฒเบฅเบฑเบš Haproxy เป‚เบ”เบเบšเบฑเบ‡เป€เบญเบตเบ™

เบกเบฑเบ™เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบชเบญเบ‡เบ›เบต 4 เบกเบทเป‰เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ‚เป‰เบญเบเบ‚เบฝเบ™ เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™ Web-GUI เบชเปเบฒเบฅเบฑเบš Haproxy เป‚เบ”เบเบšเบฑเบ‡เป€เบญเบตเบ™, เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™ - เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบฅเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เปเบฅเบฐ HAProxy-WI เบเปเบฒเบฅเบฑเบ‡เบžเบฐเบเบฒเบเบฒเบกเบ•เบดเบ”เบ•เบฒเบกเปเบ™เบงเป‚เบ™เป‰เบกเบ™เบตเป‰. เบงเบฝเบเบ‡เบฒเบ™เบซเบผเบฒเบเบขเปˆเบฒเบ‡เป„เบ”เป‰เป€เบฎเบฑเบ”เปƒเบ™เป„เบฅเบเบฐเบชเบญเบ‡เบ›เบต, เปเบฅเบฐเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเป‰เบ™เบ•เปเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™: เบเบดเบ™เบ”เบตเบ•เป‰เบญเบ™เบฎเบฑเบšเบเบฑเบš "เปเบกเบง".

เบงเบดเบ—เบตเบเบฒเบ™เบชเบทเบšเบ•เปเปˆเบ‚เบฝเบ™ Web-GUI เบชเปเบฒเบฅเบฑเบš Haproxy เป‚เบ”เบเบšเบฑเบ‡เป€เบญเบตเบ™

1. เบ‚เป‰เบญเบเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบชเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบˆเบฑเบšเบ•เบฒเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ, เปเบฅเบฐเบ™เบตเป‰, เปเบ™เปˆเบ™เบญเบ™, เบเบฒเบ™เบญเบญเบเปเบšเบš. เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เป€เบซเบ”เบœเบปเบ™เบซเบผเบฒเบ, เป€เบ‚เบปเป‰เบฒเปƒเบˆเป„เบ”เป‰เปเบฅเบฐเบชเบฐเบ”เบงเบ, เปเบฅเบฐเปเบ™เปˆเบ™เบญเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบฎเบฑเบ :). เบžเบฒเบเบชเปˆเบงเบ™เป€เบกเบ™เบนเป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบซเบผเบฒเบเบ‚เบถเป‰เบ™.

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

เบงเบดเบ—เบตเบเบฒเบ™เบชเบทเบšเบ•เปเปˆเบ‚เบฝเบ™ Web-GUI เบชเปเบฒเบฅเบฑเบš Haproxy เป‚เบ”เบเบšเบฑเบ‡เป€เบญเบตเบ™

3. เบฎเบญเบ‡เบฎเบฑเบš Nginx เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™! เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ„เบทเบเบฑเบ™เบเบฑเบš HAProxy เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบšเปเปˆเบ”เบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบชเบฐเบ–เบดเบ•เบดเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™ Nginx เบฎเบธเปˆเบ™เบŸเบฃเบต, เปเบ•เปˆเบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบปเป‰เบ™เบ•เป (เบเบฒเบ™เปเบเป‰เป„เบ‚, เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบšเปเบฅเบดเบเบฒเบ™) เบ‚เบญเบ‡ HAProxy-WI เปเบกเปˆเบ™. เบเบฑเบ‡เบกเบตเบขเบนเปˆเบชเปเบฒเบฅเบฑเบš Nginx.

เบงเบดเบ—เบตเบเบฒเบ™เบชเบทเบšเบ•เปเปˆเบ‚เบฝเบ™ Web-GUI เบชเปเบฒเบฅเบฑเบš Haproxy เป‚เบ”เบเบšเบฑเบ‡เป€เบญเบตเบ™

4. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบเบงเบ”โ€‹เบเบฒโ€‹เบขเปˆเบฒเบ‡โ€‹เป€เบ•เบฑเบกโ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบฅเบฑเบš HAProxy เปเบฅเบฐ Nginxโ€‹! เบกเบฑเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ: Grafana, Prometheus เปเบฅเบฐ Nginx เปเบฅเบฐเบœเบนเป‰เบชเบปเปˆเบ‡เบญเบญเบ HAProxy. เบชเบญเบ‡เบชเบฒเบกเบ„เบฅเบดเบเปเบฅเบฐเบเบดเบ™เบ”เบตเบ•เป‰เบญเบ™เบฎเบฑเบšเบเบฑเบš dashboards!

5. เปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™เบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบ•เบญเบšเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบšเบญเบเบซเบผเบฒเบเบ„เบฑเป‰เบ‡เบงเปˆเบฒเบเบฒเบ™เปƒเบŠเป‰ bash scripts เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปเบกเปˆเบ™เบเบฒเบ™เบเบดเบ‡เบ•เบปเบงเป€เบญเบ‡เบขเบนเปˆเปƒเบ™เบ•เบตเบ™. เบ‚เป‰เบญเบเป€เบซเบฑเบ™เบ”เบตเบเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒเปเบฅเบฐเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบงเปˆเบฒ 95% เบ‚เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบœเปˆเบฒเบ™ Ansible. เบชเบฐเบ”เบงเบเบซเบผเบฒเบ, เปเบฅเบฐเบเบฑเบ‡เป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰. เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ—เบฒเบ‡เบšเบงเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ›เบฐเบกเบฒเบ™!

6. เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบซเบผเบตเบเบฅเปˆเบฝเบ‡เบเบฒเบ™เบ›เบฐเบ”เบดเบ”เบฅเบปเบ”เบ–เบตเบšเบ„เบทเบ™เปƒเปเปˆเบžเบฒเบเปƒเบ™เบฅเบปเบ”เบ–เบตเบšเป„เบ”เป‰เปเบ™เบงเปƒเบ”? เป€เบ”เบฑเบเบ™เป‰เบญเบเบ‚เบญเบ‡เบฅเบปเบ”เบ–เบตเบš, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เป€เบงเบปเป‰เบฒ ... เบฅเบปเบ”เบ–เบตเบšเบฅเบปเบ”เบ–เบตเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เบšเบฒเบ‡เบ—เบตเบญเบฒเบ”เบกเบตเบชเบฒเบกเบฅเปเป‰: เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบžเบญเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบกเบตเบžเบญเบ”, เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡ HTTP, เปเบฅเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบเบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™. เปเบกเปˆเบ™เปเบฅเป‰เบง, เบšเปเปˆเบกเบตเบซเบ™เป‰เบฒเบ—เบตเปˆเบซเบผเบฒเบ, เปเบ•เปˆเบกเบฑเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบฅเบฐเบšเปเบฅเบดเบซเบฒเบ™ :)

เบงเบดเบ—เบตเบเบฒเบ™เบชเบทเบšเบ•เปเปˆเบ‚เบฝเบ™ Web-GUI เบชเปเบฒเบฅเบฑเบš Haproxy เป‚เบ”เบเบšเบฑเบ‡เป€เบญเบตเบ™

7. เป€เบฎเบฑเบ”เบงเบฝเบเป€เบขเบฑเบ™เบซเบผเบฒเบเบเบฑเบš HAProxy RunTime API. เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เป€เบขเบฑเบ™เบซเบผเบฒเบ? เบžเบฝเบ‡เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบซเบ™เบถเปˆเบ‡เปเบฅเบฐ ... เบšเบฒเบ‡เบ—เบตเบญเบฒเบ”เบกเบตเบ„เบปเบ™เบญเบทเปˆเบ™. เปเบ™เปˆเบ™เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบŸเบฑเบ‡เบ„เบทเป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เปเบ›เบ, เปเบ•เปˆเบ‚เป‰เบญเบเบเปเปˆเบกเบฑเบเบงเบดเบ—เบตเบ—เบตเปˆเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ sticks เบ—เบตเปˆเบฎเบฑเบเปเบฅเบฐเบเบฝเบ”เบŠเบฑเบ‡เบซเบผเบฒเบเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ:

เบงเบดเบ—เบตเบเบฒเบ™เบชเบทเบšเบ•เปเปˆเบ‚เบฝเบ™ Web-GUI เบชเปเบฒเบฅเบฑเบš Haproxy เป‚เบ”เบเบšเบฑเบ‡เป€เบญเบตเบ™

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

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

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