рд╣реИрдкреНрд░реЛрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдЧрд▓рддреА рд╕реЗ рд╡реЗрдм-рдЬреАрдпреВрдЖрдИ рд▓рд┐рдЦрдирд╛ рдХреИрд╕реЗ рдЬрд╛рд░реА рд░рдЦреЗрдВ

рдореБрдЭреЗ рд▓рд┐рдЦреЗ рд╣реБрдП рджреЛ рд╕рд╛рд▓ рдФрд░ рдЪрд╛рд░ рджрд┐рди рд╣реЛ рдЧрдП рд╣реИрдВ рд╣реИрдкреНрд░реЛрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдЧрд▓рддреА рд╕реЗ рд╡реЗрдм-рдЬреАрдпреВрдЖрдИ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ, рд▓реЗрдХрд┐рди рдЪреАрдЬреЗрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдирд╣реАрдВ рд╣реИрдВ - рд╕рдм рдХреБрдЫ рдмрджрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ HAProxy-WI рдЗрд╕ рдкреНрд░рд╡реГрддреНрддрд┐ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рджреЛ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЕрдм рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП: "рдмрд┐рд▓реНрд▓реА" рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рд╣реИрдкреНрд░реЛрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдЧрд▓рддреА рд╕реЗ рд╡реЗрдм-рдЬреАрдпреВрдЖрдИ рд▓рд┐рдЦрдирд╛ рдХреИрд╕реЗ рдЬрд╛рд░реА рд░рдЦреЗрдВ

1. рдореИрдВ рдкрд╣рд▓реА рдЪреАрдЬрд╝ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реВрдБрдЧрд╛ рдЬреЛ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЦреАрдВрдЪрддреА рд╣реИ, рдФрд░ рдпрд╣, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЕрдзрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ, рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрдпрд╛рд░рд╛ :)ред рдореЗрдиреВ рдЕрдиреБрднрд╛рдЧ рдЕрдзрд┐рдХ рд╕рдВрд░рдЪрд┐рдд рд╣реЛ рдЧрдП рд╣реИрдВ.

2. рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкреЗрдЬ рд╕рд╛рдордиреЗ рдЖрдП рд╣реИрдВ, рдЬреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ:

рд╣реИрдкреНрд░реЛрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдЧрд▓рддреА рд╕реЗ рд╡реЗрдм-рдЬреАрдпреВрдЖрдИ рд▓рд┐рдЦрдирд╛ рдХреИрд╕реЗ рдЬрд╛рд░реА рд░рдЦреЗрдВ

3. Nginx рд╕рдорд░реНрдерди рдЕрдм рдЙрдкрд▓рдмреНрдз рд╣реИ! рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, Nginx рдХреЗ рдореБрдлрд╝реНрдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЖрдкрдХреЗ рдЖрдВрдХрдбрд╝реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЦрд░рд╛рдм рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ HAProxy рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди HAProxy-WI рдХреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдп (рд╕рдВрдкрд╛рджрди, рддреБрд▓рдирд╛ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рд╕рдВрдЪрд╛рд▓рди рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рд╕реЗрд╡рд╛рдПрдБ) рд╣реИрдВ рдЕрднреА рднреА Nginx рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред

рд╣реИрдкреНрд░реЛрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдЧрд▓рддреА рд╕реЗ рд╡реЗрдм-рдЬреАрдпреВрдЖрдИ рд▓рд┐рдЦрдирд╛ рдХреИрд╕реЗ рдЬрд╛рд░реА рд░рдЦреЗрдВ

4. рдЖрдк HAProxy рдФрд░ Nginx рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдирд┐рдЧрд░рд╛рдиреА рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдЧреНрд░рд╛рдлрд╛рдирд╛, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдФрд░ рдиреЗрдЧреНрдиреЗрдХреНрд╕ рдФрд░ HAProxy рдирд┐рд░реНрдпрд╛рддрдХред рдХреБрдЫ рдХреНрд▓рд┐рдХ рдФрд░ рдбреИрд╢рдмреЛрд░реНрдб рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

5. рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, рдореБрдЭреЗ рдХрдИ рдмрд╛рд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдкрдиреЗ рдкреИрд░ рдкрд░ рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдорд╛рд░рдирд╛ рд╣реИред рдореИрдВ рдЙрдирд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдФрд░ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЕрдм 95% рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди Ansible рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рднреАред рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛!

6. рдЖрдк рд╕рд╛рдЗрдХрд┐рд▓ рдХреЗ рднреАрддрд░ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдкреБрдирдГ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдХреИрд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ? рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдмрдЪреНрдЪрд╛, рдРрд╕рд╛ рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП... рдПрдХ рдЫреЛрдЯреА рд╕рд╛рдЗрдХрд┐рд▓ рдмрд╛рдЗрдХ, рд╢рд╛рдпрдж рддреАрди рдкрд╣рд┐рдпреЛрдВ рд╡рд╛рд▓реА: рдкреЛрд░реНрдЯ рдЙрдкрд▓рдмреНрдзрддрд╛, HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдФрд░ рдХреАрд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рд╣рд╛рдВ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рдкреНрд░рд╢рд╛рд╕рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ :)

рд╣реИрдкреНрд░реЛрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдЧрд▓рддреА рд╕реЗ рд╡реЗрдм-рдЬреАрдпреВрдЖрдИ рд▓рд┐рдЦрдирд╛ рдХреИрд╕реЗ рдЬрд╛рд░реА рд░рдЦреЗрдВ

7. HAProxy RunTime API рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдоред рдЗрддрдирд╛ рдмрдврд╝рд┐рдпрд╛ рдХреНрдпреЛрдВ? рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реИ рдФрд░... рд╢рд╛рдпрдж рдмрд╛рдХреА рд╕рднреА рдХреЗ рдкрд╛рд╕ред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдереЛрдбрд╝рд╛ рджрд┐рдЦрд╛рд╡рдЯреА рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдИ рдкрд╕рдВрджреАрджрд╛ рдФрд░ рдирд╛рдкрд╕рдВрдж рд╕реНрдЯрд┐рдХ-рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

рд╣реИрдкреНрд░реЛрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдЧрд▓рддреА рд╕реЗ рд╡реЗрдм-рдЬреАрдпреВрдЖрдИ рд▓рд┐рдЦрдирд╛ рдХреИрд╕реЗ рдЬрд╛рд░реА рд░рдЦреЗрдВ

рд╢рд╛рдпрдж рд╕рднреА рдореБрдЦреНрдп. рд╕рдореВрд╣реЛрдВ, рднреВрдорд┐рдХрд╛рдУрдВ, рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдмрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдХрд╛рдо рдерд╛... рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХреНрдпрд╛? рдЕрдм рдПрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реИ, рдЬрд╣рд╛рдВ HAProxy-WI рдХрд╛ рдбреЗрдореЛ рд╣реИ рдФрд░ рдЖрдк рд╕реНрд╡рдпрдВ рд╕рдм рдХреБрдЫ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╣рд╛рдВ рдПрдХ рдЪреЗрдВрдЬрд▓реЙрдЧ рд╣реИред рдХреГрдкрдпрд╛ "рд╣реИрдмреНрд░реЛ рдкреНрд░рднрд╛рд╡" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдореЗрд░реЗ рдкрд╛рд╕ рд╕рд╛рдЗрдЯ рдФрд░ рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдордЬреЛрд░ рд╕рд░реНрд╡рд░ рд╣реИред рдФрд░ рдПрдХ рд▓рд┐рдВрдХ GitHub

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

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