Haproxy เจฒเจˆ เจ—เจฒเจคเฉ€ เจจเจพเจฒ Web-GUI เจฒเจฟเจ–เจฃเจพ เจ•เจฟเจตเฉ‡เจ‚ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃเจพ เจนเฉˆ

เจฎเฉˆเจจเฉ‚เฉฐ เจฒเจฟเจ–เฉ‡ เจนเฉ‹เจ เจฆเฉ‹ เจธเจพเจฒ เจ…เจคเฉ‡ 4 เจฆเจฟเจจ เจนเฉ‹ เจ—เจ เจนเจจ เจนเฉˆเจชเจฐเฉ‹เจ•เจธเฉ€ เจฒเจˆ เจ…เจšเจพเจจเจ• เจ‡เฉฑเจ• เจตเฉˆเฉฑเจฌ-เจœเฉ€เจฏเฉ‚เจ†เจˆ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจฟเจ–เจฃเจพ เจนเฉˆ, เจชเจฐ เจšเฉ€เจœเจผเจพเจ‚ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจนเจจ - เจธเจญ เจ•เฉเจ เจฌเจฆเจฒ เจฐเจฟเจนเจพ เจนเฉˆ เจ…เจคเฉ‡ เจตเจฟเจ•เจพเจธ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ, เจ…เจคเฉ‡ HAProxy-WI เจ‡เจธ เจฐเฉเจเจพเจจ เจจเฉ‚เฉฐ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ. เจฆเฉ‹ เจธเจพเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเจพ เจ•เฉฐเจฎ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจนเฉเจฃ เจฎเฉเฉฑเจ– เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚, เจ‡เจธ เจฒเจˆ: โ€œเจฌเจฟเฉฑเจฒเฉ€โ€ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเจพ เจธเฉเจ†เจ—เจค เจนเฉˆเฅค

Haproxy เจฒเจˆ เจ—เจฒเจคเฉ€ เจจเจพเจฒ Web-GUI เจฒเจฟเจ–เจฃเจพ เจ•เจฟเจตเฉ‡เจ‚ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃเจพ เจนเฉˆ

1. เจฎเฉˆเจ‚ เจชเจนเจฟเจฒเฉ€ เจšเฉ€เจœเจผ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจพเจ‚เจ—เจพ เจœเฉ‹ เจคเฉเจนเจพเจกเฉ€ เจ…เฉฑเจ– เจจเฉ‚เฉฐ เจซเฉœเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจน, เจฌเฉ‡เจธเจผเจ•, เจกเจฟเจœเจผเจพเจˆเจจ เจนเฉˆเฅค เจฎเฉ‡เจฐเฉ€ เจฐเจพเจ เจตเจฟเฉฑเจš, เจนเจฐ เจšเฉ€เจœเจผ เจตเจงเฉ‡เจฐเฉ‡ เจคเจฐเจ•เจชเฉ‚เจฐเจจ, เจธเจฎเจเจฃ เจฏเฉ‹เจ— เจ…เจคเฉ‡ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจฌเจฃ เจ—เจˆ เจนเฉˆ, เจ…เจคเฉ‡ เจฌเฉ‡เจธเจผเจ• เจชเจฟเจ†เจฐเจพ :). เจฎเฉ€เจจเฉ‚ เจญเจพเจ— เจตเจงเฉ‡เจฐเฉ‡ เจขเจพเจ‚เจšเจพเจ—เจค เจฌเจฃ เจ—เจ เจนเจจเฅค

2. เจนเจฐเฉ‡เจ• เจธเจฐเจตเจฐ เจฒเจˆ เจชเฉฐเจจเฉ‡ เจชเฉเจฐเจ—เจŸ เจนเฉ‹เจ เจนเจจ, เจœเฉ‹ เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ‡ เจธเฉฐเจšเจพเจฒเจจ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจฒเจˆ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจนเฉˆเฅค เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจธเจฆเจพ เจนเฉˆ:

Haproxy เจฒเจˆ เจ—เจฒเจคเฉ€ เจจเจพเจฒ Web-GUI เจฒเจฟเจ–เจฃเจพ เจ•เจฟเจตเฉ‡เจ‚ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃเจพ เจนเฉˆ

3. Nginx เจธเจนเจพเจ‡เจคเจพ เจนเฉเจฃ เจ‰เจชเจฒเจฌเจง เจนเฉˆ! เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, Nginx เจฆเฉ‡ เจฎเฉเจซเจค เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ‡ เจ…เฉฐเจ•เฉœเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ•เจฎเจœเจผเฉ‹เจฐ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเฉ‡ เจ•เจพเจฐเจจ HAProxy เจฆเฉ‡ เจธเจฎเจพเจจ เจจเฉ‚เฉฐ เจเจ•เฉ€เจ•เฉเจฐเจฟเจค เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจจเจนเฉ€เจ‚ เจธเฉ€, เจชเจฐ HAProxy-WI เจฆเฉ‡ เจฎเฉเฉฑเจ– เจ•เจพเจฐเจœ (เจธเฉฐเจชเจพเจฆเจจ, เจคเฉเจฒเจจเจพ เจ…เจคเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ เจธเฉฐเจฐเจšเจจเจพ, เจธเฉฐเจšเจพเจฒเจจ เจ…เจคเฉ‡ เจธเจฅเจพเจชเจจเจพ เจธเฉ‡เจตเจพเจตเจพเจ‚) เจนเจจเฅค Nginx เจฒเจˆ เจ…เจœเฉ‡ เจตเฉ€ เจ‰เจชเจฒเจฌเจง เจนเฉˆ.

Haproxy เจฒเจˆ เจ—เจฒเจคเฉ€ เจจเจพเจฒ Web-GUI เจฒเจฟเจ–เจฃเจพ เจ•เจฟเจตเฉ‡เจ‚ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃเจพ เจนเฉˆ

4. เจคเฉเจธเฉ€เจ‚ HAProxy เจ…เจคเฉ‡ Nginx เจฒเจˆ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจจเจพเจฒ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹! เจ‡เจธ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจนเจจ: Grafana, Prometheus เจ…เจคเฉ‡ Nginx เจ…เจคเฉ‡ HAProxy เจจเจฟเจฐเจฏเจพเจคเจ•เฅค เจ•เฉเจ เจ•เจฒเจฟเฉฑเจ• เจ…เจคเฉ‡ เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจกเจพเจ‚ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเจพ เจธเฉเจ†เจ—เจค เจนเฉˆ!

5. เจชเจฟเจ›เจฒเฉ€ เจชเฉ‹เจธเจŸ เจฆเฉ€เจ†เจ‚ เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš, เจฎเฉˆเจจเฉ‚เฉฐ เจ•เจˆ เจตเจพเจฐ เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจธเฉ€ เจ•เจฟ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจฌเฉˆเจธเจผ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจชเฉˆเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจ—เฉ‹เจฒเฉ€ เจฎเจพเจฐ เจฐเจฟเจนเจพ เจนเฉˆ. เจฎเฉˆเจ‚ เจ‰เจนเจจเจพเจ‚ เจจเจพเจฒ เจธเจนเจฟเจฎเจค เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เจธ เจฒเจˆ เจธเจพเจฐเฉ€เจ†เจ‚ เจธเจฅเจพเจชเจจเจพเจตเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ 95% เจนเฉเจฃ เจœเจตเจพเจฌเจฆเฉ‡เจน เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ…เจธเจฒ เจตเจฟเฉฑเจš เจธเฉเจตเจฟเจงเจพเจœเจจเจ•, เจ…เจคเฉ‡ เจ‡เจน เจตเฉ€ เจตเจงเฉ‡เจฐเฉ‡ เจญเจฐเฉ‹เจธเฉ‡เจฎเฉฐเจฆ. เจšเจพเจฐเฉ‡ เจชเจพเจธเฉ‡ เจ‡เฉฑเจ• เจธเจ•เจพเจฐเจพเจคเจฎเจ•!

6. เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจพเจˆเจ•เจฒ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ‡เฉฑเจ• เจธเจพเจˆเจ•เจฒ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจ–เฉ‹เจœเจฃ เจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจš เจธเจ•เจฆเฉ‡ เจนเฉ‹? เจ‡เฉฑเจ• เจธเจพเจˆเจ•เจฒ เจฆเจพ เจฌเฉฑเจšเจพ, เจ‡เจธ เจฒเจˆ เจฌเฉ‹เจฒเจฃ เจฒเจˆ... เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจธเจพเจˆเจ•เจฒ เจฌเจพเจˆเจ•, เจธเจผเจพเจ‡เจฆ เจคเจฟเฉฐเจจ-เจชเจนเฉ€เจ†: เจชเฉ‹เจฐเจŸ เจ‰เจชเจฒเจฌเจงเจคเจพ, HTTP เจœเจตเจพเจฌ, เจ…เจคเฉ‡ เจ•เฉ€เจตเจฐเจก เจฆเฉเจ†เจฐเจพ เจœเจตเจพเจฌ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ เจธเจฟเจฐเจซเจผ เจชเฉ‹เจฐเจŸเจพเจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพเฅค เจนเจพเจ‚, เจ‡เฉฑเจฅเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจซเฉฐเจ•เจธเจผเจจ เจจเจนเฉ€เจ‚ เจนเจจ, เจชเจฐ เจ‡เจธเจจเฉ‚เฉฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจเจพ เจ†เจธเจพเจจ เจนเฉˆ :)

Haproxy เจฒเจˆ เจ—เจฒเจคเฉ€ เจจเจพเจฒ Web-GUI เจฒเจฟเจ–เจฃเจพ เจ•เจฟเจตเฉ‡เจ‚ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃเจพ เจนเฉˆ

7. HAProxy RunTime API เจจเจพเจฒ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจ•เฉฐเจฎเฅค เจ‡เฉฐเจจเจพ เจ เฉฐเจกเจพ เจ•เจฟเจ‰เจ‚? เจธเจฟเจฐเจซเจผ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจนเฉˆ เจ…เจคเฉ‡... เจธเจผเจพเจ‡เจฆ เจนเจฐ เจ•เฉ‹เจˆเฅค เจฏเจ•เฉ€เจจเจจ เจ‡เจน เจฅเฉ‹เฉœเจพ เจฆเจฟเจ–เจพเจตเจพ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ, เจชเจฐ เจฎเฉˆเจจเฉ‚เฉฐ เจธเฉฑเจšเจฎเฉเฉฑเจš เจชเจธเฉฐเจฆ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ. เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจชเจฟเจ†เจฐเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจจเจซเจผเจฐเจค เจตเจพเจฒเฉ€เจ†เจ‚ เจธเจŸเจฟเฉฑเจ•-เจŸเฉ‡เจฌเจฒเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ:

Haproxy เจฒเจˆ เจ—เจฒเจคเฉ€ เจจเจพเจฒ Web-GUI เจฒเจฟเจ–เจฃเจพ เจ•เจฟเจตเฉ‡เจ‚ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฃเจพ เจนเฉˆ

เจธเจผเจพเจ‡เจฆ เจฎเฉเฉฑเจ– เจฒเฉ‹เจ• เจฆเฉ‡ เจธเจพเจฐเฉ‡. เจธเจฎเฉ‚เจนเจพเจ‚, เจญเฉ‚เจฎเจฟเจ•เจพเจตเจพเจ‚, เจธเฉเจฐเฉฑเจ–เจฟเจ† เจ…เจคเฉ‡ เจฌเฉฑเจ— เจ–เฉ‹เจœ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจฌเจนเฉเจค เจธเจพเจฐเจพ เจ•เฉฐเจฎ เจธเฉ€... เจชเจฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจคเฉเจธเฉ€เจ‚ เจ•เฉ€ เจœเจพเจฃเจฆเฉ‡ เจนเฉ‹? เจนเฉเจฃ เจ‡เฉฑเจ• เจตเฉˆเจฌเจธเจพเจˆเจŸ เจนเฉˆ, เจœเจฟเฉฑเจฅเฉ‡ HAProxy-WI เจฆเจพ เจ‡เฉฑเจ• เจกเฉˆเจฎเฉ‹ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจ†เจช เจธเจญ เจ•เฉเจ เจ…เจœเจผเจฎเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจœเจฟเฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจšเฉ‡เจ‚เจœเจฒเฉŒเจ— เจนเฉˆเฅค เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ "เจนเฉˆเจฌเจฐเฉ‹ เจชเฉเจฐเจญเจพเจต" เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจจเจนเฉ€เจ‚ เจคเจพเจ‚ เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจธเจพเจˆเจŸ เจ…เจคเฉ‡ เจกเฉˆเจฎเฉ‹ เจฒเจˆ เจ‡เฉฑเจ• เจ•เจฎเจœเจผเฉ‹เจฐ เจธเจฐเจตเจฐ เจนเฉˆ. เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฒเจฟเฉฐเจ• GitHub

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹