рдЕрдВрдЧреНрд░реЗрдЬрд╝реАрдлреНрд░реЗрдВрдЪрд╕реНрдкреЗрдирд┐рд╢

Ad


рдСрдирд╡рд░реНрдХреНрд╕ рдлрд╝реЗрд╡рд┐рдХреЙрди

рд╣реИрдкреНрд░реЛрдХреНрд╕реА-рд▓реБрдЖ - рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдСрдирд▓рд╛рдЗрди

рдЙрдмрдВрдЯреВ рдСрдирд▓рд╛рдЗрди, рдлреЗрдбреЛрд░рд╛ рдСрдирд▓рд╛рдЗрди, рд╡рд┐рдВрдбреЛрдЬ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдпрд╛ рдореИрдХ рдУрдПрд╕ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдСрдирд╡рд░реНрдХреНрд╕ рдореБрдлреНрдд рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рд╣реИрдкреНрд░реЛрдХреНрд╕реА-рд▓реБрдЖ рдЪрд▓рд╛рдПрдВ

рдпрд╣ рдХрдорд╛рдВрдб рд╣реИрдкреНрд░реЛрдХреНрд╕реА-рд▓реБрдЖ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдорд╛рд░реЗ рдХрдИ рдореБрдлреНрдд рдСрдирд▓рд╛рдЗрди рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдЬреИрд╕реЗ рдХрд┐ рдЙрдмрдВрдЯреВ рдСрдирд▓рд╛рдЗрди, рдлреЗрдбреЛрд░рд╛ рдСрдирд▓рд╛рдЗрди, рд╡рд┐рдВрдбреЛрдЬ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдпрд╛ рдореИрдХ рдУрдПрд╕ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд╡рд░реНрдХреНрд╕ рдлреНрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХрд╛рд░реНрдпрдХреНрд░рдо:

рдирд╛рдо


рд╣реИрдкреНрд░реЛрдХреНрд╕реА-рд▓реБрдЖ - рд╣реИрдкреНрд░реЛрдХреНрд╕реА-рд▓реБрдЖ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг

рд╣реИрдкреНрд░реЛрдХреНрд╕реА LUA рдЪрд▓ рд░рд╣рд╛ рд╣реИ рд╕рдВрджрд░реНрднреЛрдВ


HAProxy рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд▓реБрдЖ рдХреЛрдб рдХреЛ 2 рдореБрдЦреНрдп рдореЛрдб рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╣реИ
рдкреНрд░рд╛рд░рдВрдн рдореЛрдб, рдФрд░ рджреВрд╕рд░рд╛ рд╣реИ рдХреНрд░рдо рдореЛрдб.

┬╖ рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдореЛрдб, рд╣рдо DNS рд╕рдорд╛рдзрд╛рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рд╕реЙрдХреЗрдЯ I/O рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдЗрд╕ рдЖрд░рдВрднреАрдХрд░рдг рдореЛрдб рдореЗрдВ, рд▓реВрдЖ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди HAProxy рдЕрднреА рднреА рдЕрд╡рд░реБрджреНрдз рд╣реИ
рдХрд╛рд░реНрдпрдХреНрд░рдо.

┬╖ рдореЗрдВ рдХреНрд░рдо рдореЛрдб, рд╣рдо DNS рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рд▓реЗрдХрд┐рди рд╣рдо рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реБрдЖ рдХреЛрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдмрд╣реБрд╕рдВрдХреЗрддрди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд▓реБрдЖ рдХреЛрдб
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рд▓реБрдЖ рдХреЛрдб рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдореБрдЦреНрдп рдХреЛрдб рдФрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд▓реБрдЖ рдореЗрдВ 6 рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрджрд░реНрдн рд╣реИрдВред

1. рд▓реБрдЖ рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╕рдВрдЧ. рдЗрд╕реЗ рд▓реВрдЖ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓реЛрдб рдХреЗ рджреМрд░рд╛рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
HAProxy [рд╡реИрд╢реНрд╡рд┐рдХ] рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╛рдЧ рд▓реБрдЖ-рд▓реЛрдб. рдЗрд╕реЗ рдЖрд░рдВрднреАрдХрд░рдг рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рддрд░реАрдХрд╛ред рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ HAProxy рдореЗрдВ Lua рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

2. рд▓реБрдЖ init рдкреНрд░рд╕рдВрдЧ. рдпрд╣ HAProxy рдХреЗ рдареАрдХ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдПрдХ Lua рдлрд╝рдВрдХреНрд╢рди рд╣реИ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд╛рд░реНрд╕рд┐рдВрдЧ. рдирд┐рд╖реНрдкрд╛рджрди рдЖрд░рдВрднреАрдХрд░рдг рдореЛрдб рдореЗрдВ рд╣реИ. рдЗрд╕ рд╕рдиреНрджрд░реНрдн рдореЗрдВ
HAProxy рд╡рд╛рддрд╛рд╡рд░рдг рдкрд╣рд▓реЗ рд╣реА рдкреНрд░рд╛рд░рдВрдн рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдпрд╛
рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдпрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ред рдпреЗ рдХрд╛рд░реНрдп рд╢рд░реАрд░ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпреЗ рдЧрдпреЗ рд╣реИрдВ
рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрджрд░реНрдн core.register_init(). рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдПрдХ рд╣реИ
рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд┐рдирд╛ рд╕рд░рд▓ рдлрд╝рдВрдХреНрд╢рди, рдЗрд╕ рддрд░рд╣: рд╕рдорд╛рд░реЛрд╣ рдПрдлрд╕реАрдПрди().

3. рд▓реБрдЖ рдХрд╛рд░реНрдп рдкреНрд░рд╕рдВрдЧ. рдпрд╣ HAProxy рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдПрдХ Lua рдлрд╝рдВрдХреНрд╢рди рд╣реИ
рд╢реЗрдбреНрдпреВрд▓рд░, рдФрд░ рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж
рдХреЛрд░.рд░рдЬрд┐рд╕реНрдЯрд░_рдЯрд╛рд╕реНрдХ(). рдпрд╣ рд╕рдВрджрд░реНрдн рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдорд╡рд░реНрддреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╣реИ
рд░рдирдЯрд╛рдЗрдо рдореЛрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рддред рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрд┐рдирд╛ рдПрдХ рд╕рд░рд▓ рдлрд╝рдВрдХреНрд╢рди рд╣реИ
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд┐рдирд╛, рдЗрд╕ рддрд░рд╣: рд╕рдорд╛рд░реЛрд╣ рдПрдлрд╕реАрдПрди().

4. рдХрд╛рд░реНрдп рдкреНрд░рд╕рдВрдЧ. рдпрд╣ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдПрдХ рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдпреЗ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ
рд▓реБрдЖ рдирд┐рд░реНрджреЗрд╢реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрдВрдЬреАрдХреГрдд "рдХреЛрд░.рд░рдЬрд┐рд╕реНрдЯрд░_рдПрдХреНрд╢рди()"ред рд▓реБрдЖ рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк
рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЗрддрд╛ рд╣реИ
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдХреНрд╖рд╛ TXNред рд╕рдорд╛рд░реЛрд╣ рдПрдлрд╕реАрдПрди(рдЯреАрдПрдХреНрд╕рдПрди).

5. рдирдореВрдирд╛-рд▓рд╛рдиреЗ рдкреНрд░рд╕рдВрдЧ. рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ TXN рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдВрдЯреНрд░реА рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ. рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рднреА рдмреНрд▓реЙрдХрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ
рдХреБрдЫ рдореВрд▓ HAProxy рдирдореВрдирд╛-рд▓рд╛рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИрдВред
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ рд╕рдорд╛рд░реЛрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдлрд╕реАрдПрди(рдЯреАрдПрдХреНрд╕рдПрди). рдпреЗ рдХрд╛рд░реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд core.register_fetches(). рдкреНрд░рддреНрдпреЗрдХ рдШреЛрд╖рд┐рдд рдирдореВрдирд╛-рд▓рд╛рдиреЗ рдпреЛрдЧреНрдп рд╣реИ
рд╕реНрдЯреНрд░рд┐рдВрдЧ "рд▓реБрдЖ" рджреНрд╡рд╛рд░рд╛ рдЙрдкрд╕рд░реНрдЧред

рдзреНрдпрд╛рди рджреЗрдВ: рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдореВрд▓ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрд╛
HAProxy рдирдореВрдирд╛-рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд▓реМрдЯрд╛ рд╕рдХрддрд╛ред рдпрд╣ рдорд╛рдорд▓рд╛ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ
рд╕рдорд░реНрдерд┐рдд

6. рдкрд░рд┐рд╡рд░реНрддрдХ рдкреНрд░рд╕рдВрдЧ. рдпрд╣ рдПрдХ рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрддрд╛ рд╣реИ
рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрди рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА
рдХреЛрдИ рднреА рдкреНрд░рд╕рдВрдЧ. рд╡реЗ рдХреЛрдИ рдЕрд╡рд░реЛрдзрдХ рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ. рдХреЙрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ рд╕рдорд╛рд░реЛрд╣
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдлрд╕реАрдПрди(рд╕реНрдЯреНрд░рд┐рдВрдЧ). рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
core.register_converters(). рдкреНрд░рддреНрдпреЗрдХ рдШреЛрд╖рд┐рдд рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рдЖрдЧреЗ "lua" рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рдЧреА рд╣реЛрддреА рд╣реИред

рд╣реИрдкреНрд░реЛрдХреНрд╕реА LUA рдирдорд╕реНрддреЗ рд╡рд┐рд╢реНрд╡


HAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (hello_world.conf):

рд╡реИрд╢реНрд╡рд┐рдХ
рд▓реБрдЖ-рд▓реЛрдб hello_world.lua

рдкреНрд░реЙрдХреНрд╕реА рд╕реБрдиреЛ
рдмрд╛рдЗрдВрдб 127.0.0.1:10001
рдЯреАрд╕реАрдкреА-рдЕрдиреБрд░реЛрдз рдирд┐рд░реАрдХреНрд╖рдг-рд╡рд┐рд▓рдВрдм 1рдПрд╕
рдЯреАрд╕реАрдкреА-рдЕрдиреБрд░реЛрдз рд╕рд╛рдордЧреНрд░реА рдЙрдкрдпреЛрдЧ-рд╕реЗрд╡рд╛ lua.hello_world

HAProxy рд▓реБрдЖ рдлрд╝рд╛рдЗрд▓ (рд╣реИрд▓реЛ_рд╡рд░реНрд▓реНрдб.рд▓реБрдЖ):

core.register_service("hello_world", "tcp", рдлрд╝рдВрдХреНрд╢рди(рдПрдкреНрд▓реЗрдЯ)
рдПрдкреНрд▓реЗрдЯ:рднреЗрдЬреЗрдВ("рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб\n")
рд╕рдорд╛рдкреНрдд)

рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП HAProxy рдХреИрд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ:

./haproxy -f hello_world.conf

рдЕрдиреНрдп рдЯрд░реНрдорд┐рдирд▓ рдкрд░, рдЖрдк рдЯреЗрд▓рдиреЗрдЯ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

#:~ рдЯреЗрд▓рдиреЗрдЯ 127.0.0.1 10001
рд╣реИрд▓реЛ рджреБрдирд┐рдпрд╛

рдХрдХреНрд╖рд╛ рдореБрдЦреНрдп()
"рдХреЛрд░" рд╡рд░реНрдЧ рдореЗрдВ рд╕рднреА HAProxy рдХреЛрд░ рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпреЗ рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдпреЛрдЧреА рд╣реИрдВ
рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ, рд╣реБрдХ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ, рд╡реИрд╢реНрд╡рд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдпрд╛ рдПрд╕реАрдПрд▓,...

"рдХреЛрд░" рд╡рд░реНрдЧ рдореВрд▓ рд░реВрдк рд╕реЗ HAProxy рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдирд╣реАрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рд▓рд╛рдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдЗрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ.

"рдХреЛрд░" рд╡рд░реНрдЧ рд╕реНрдерд┐рд░ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдХреЛрдИ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

core.emerg

рд░рд┐рдЯрд░реНрди
рдкреВрд░реНрдгрд╛рдВрдХ

рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдЗрд╕рдореЗрдВ рд▓реЙрдЧрд▓реЗрд╡рд▓ "рдЖрдкрд╛рддрдХрд╛рд▓реАрди" рдХрд╛ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИ
(0).

рдХреЛрд░.рдЪреЗрддрд╛рд╡рдиреА

рд░рд┐рдЯрд░реНрди
рдкреВрд░реНрдгрд╛рдВрдХ

рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдЗрд╕рдореЗрдВ рд▓реЙрдЧрд▓реЗрд╡рд▓ "рдЕрд▓рд░реНрдЯ" (1) рдХрд╛ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИред

рдХреЛрд░.рдХреНрд░рд┐рдЯ

рд░рд┐рдЯрд░реНрди
рдкреВрд░реНрдгрд╛рдВрдХ

рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдЗрд╕рдореЗрдВ рд▓реЙрдЧрд▓реЗрд╡рд▓ "рдорд╣рддреНрд╡рдкреВрд░реНрдг" (2) рдХрд╛ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИред

рдХреЛрд░.рддреНрд░реБрдЯрд┐

рд░рд┐рдЯрд░реНрди
рдкреВрд░реНрдгрд╛рдВрдХ

рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдЗрд╕рдореЗрдВ рд▓реЙрдЧрд▓реЗрд╡рд▓ "рддреНрд░реБрдЯрд┐" (3) рдХрд╛ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИред

рдХреЛрд░.рдЪреЗрддрд╛рд╡рдиреА

рд░рд┐рдЯрд░реНрди
рдкреВрд░реНрдгрд╛рдВрдХ

рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдЗрд╕рдореЗрдВ рд▓реЙрдЧрд▓реЗрд╡рд▓ "рдЪреЗрддрд╛рд╡рдиреА" (4) рдХрд╛ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИред

рдХреЛрд░.рд╕реВрдЪрдирд╛

рд░рд┐рдЯрд░реНрди
рдкреВрд░реНрдгрд╛рдВрдХ

рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдЗрд╕рдореЗрдВ рд▓реЙрдЧрд▓реЗрд╡рд▓ "рдиреЛрдЯрд┐рд╕" (5) рдХрд╛ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИред

core.info

рд░рд┐рдЯрд░реНрди
рдкреВрд░реНрдгрд╛рдВрдХ

рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдЗрд╕рдореЗрдВ рд▓реЙрдЧрд▓реЗрд╡рд▓ "рдЬрд╛рдирдХрд╛рд░реА" (6) рдХрд╛ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИред

рдХреЛрд░.рдбреАрдмрдЧ

рд░рд┐рдЯрд░реНрди
рдкреВрд░реНрдгрд╛рдВрдХ

рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдЗрд╕рдореЗрдВ рд▓реЙрдЧрд▓реЗрд╡рд▓ "рдбреАрдмрдЧ" (7) рдХрд╛ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИред

рдХреЛрд░.рд▓реЙрдЧ(рд▓реЙрдЧрд▓реЗрд╡рд▓, рд╕рдВрджреЗрд╢)
рдкреНрд░рд╕рдВрдЧ: рдмреЙрдбреА, рдЗрдирд┐рдЯ, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛, рдирдореВрдирд╛-рдкреНрд░рд╛рдкреНрддрд┐, рдХрдирд╡рд░реНрдЯрд░

рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд▓реЙрдЧ рднреЗрдЬрддрд╛ рд╣реИ. рд▓реЙрдЧ HAProxy рдХреЗ рдЕрдиреБрд╕рд╛рд░ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓, рдбрд┐рдлрд╝реЙрд▓реНрдЯ syslog рд╕рд░реНрд╡рд░ рдкрд░ рдпрджрд┐ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкрд░
рдпрджрд┐ рдЕрдиреБрдорддрд┐ рд╣реЛ рддреЛ stderr.

рддрд░реНрдХ

┬╖ рд▓реЙрдЧ рд╕реНрддрд░ (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдХреНрдпрд╛ рд▓реЙрдЧ рд╕реНрддрд░ рд╕рдВрджреЗрд╢ рд╕реЗ рд╕рдВрдмрджреНрдз рд╣реИред рдпрд╣ рд╣реИ рдПрдХ
0 рдФрд░ 7 рдХреЗ рдмреАрдЪ рдХреА рд╕рдВрдЦреНрдпрд╛.

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд▓реЙрдЧ рд╕рд╛рдордЧреНрд░реА.

рджреЗрдЦ core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (рд▓реЙрдЧ рд╕реНрддрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ)

рджреЗрдЦ рдХреЛрдб.рдбреАрдмрдЧ

рджреЗрдЦ рдХреЛрд░.рдЬрд╛рдирдХрд╛рд░реА

рджреЗрдЦ рдХреЛрд░.рдЪреЗрддрд╛рд╡рдиреА

рджреЗрдЦ рдХреЛрд░.рдЪреЗрддрд╛рд╡рдиреА

рдХреЛрд░.рдбреАрдмрдЧ(рд╕рдВрджреЗрд╢)
рдкреНрд░рд╕рдВрдЧ: рдмреЙрдбреА, рдЗрдирд┐рдЯ, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛, рдирдореВрдирд╛-рдкреНрд░рд╛рдкреНрддрд┐, рдХрдирд╡рд░реНрдЯрд░

рддрд░реНрдХ

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд▓реЙрдЧ рд╕рд╛рдордЧреНрд░реА.

рджреЗрдЦ рд▓реЙрдЧ рдЗрди

рд╕реЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:

рд╕рдорд╛рд░реЛрд╣ рдбреАрдмрдЧ рдХрд░реЗрдВ(рд╕рдВрджреЗрд╢)
рдХреЛрд░.рд▓реЙрдЧ (рдХреЛрд░.рдбреАрдмрдЧ, рд╕рдВрджреЗрд╢)
рд╕рдорд╛рдкреНрдд

рдХреЛрд░.рдЬрд╛рдирдХрд╛рд░реА(рд╕рдВрджреЗрд╢)
рдкреНрд░рд╕рдВрдЧ: рдмреЙрдбреА, рдЗрдирд┐рдЯ, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛, рдирдореВрдирд╛-рдкреНрд░рд╛рдкреНрддрд┐, рдХрдирд╡рд░реНрдЯрд░

рддрд░реНрдХ

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд▓реЙрдЧ рд╕рд╛рдордЧреНрд░реА.

рджреЗрдЦ рд▓реЙрдЧ рдЗрди

рд╕рдорд╛рд░реЛрд╣ рдЬрд╛рдирдХрд╛рд░реА(рд╕рдВрджреЗрд╢)
core.log (core.info, рд╕рдВрджреЗрд╢)
рд╕рдорд╛рдкреНрдд

рдХреЛрд░.рдЪреЗрддрд╛рд╡рдиреА(рд╕рдВрджреЗрд╢)
рдкреНрд░рд╕рдВрдЧ: рдмреЙрдбреА, рдЗрдирд┐рдЯ, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛, рдирдореВрдирд╛-рдкреНрд░рд╛рдкреНрддрд┐, рдХрдирд╡рд░реНрдЯрд░

рддрд░реНрдХ

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд▓реЙрдЧ рд╕рд╛рдордЧреНрд░реА.

рджреЗрдЦ рд▓реЙрдЧ рдЗрди

рд╕рдорд╛рд░реЛрд╣ рдЪреЗрддрд╛рд╡рдиреА(рд╕рдВрджреЗрд╢)
рдХреЛрд░.рд▓реЙрдЧ (рдХреЛрд░.рдЪреЗрддрд╛рд╡рдиреА, рд╕рдВрджреЗрд╢)
рд╕рдорд╛рдкреНрдд

рдХреЛрд░.рдЪреЗрддрд╛рд╡рдиреА(рд╕рдВрджреЗрд╢)
рдкреНрд░рд╕рдВрдЧ: рдмреЙрдбреА, рдЗрдирд┐рдЯ, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛, рдирдореВрдирд╛-рдкреНрд░рд╛рдкреНрддрд┐, рдХрдирд╡рд░реНрдЯрд░

рддрд░реНрдХ

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд▓реЙрдЧ рд╕рд╛рдордЧреНрд░реА.

рджреЗрдЦ рд▓реЙрдЧ рдЗрди

рд╕рдорд╛рд░реЛрд╣ рдЪреЗрддрд╛рд╡рдиреА(рд╕рдВрджреЗрд╢)
рдХреЛрд░.рд▓реЙрдЧ (рдХреЛрд░.рдЕрд▓рд░реНрдЯ, рд╕рдВрджреЗрд╢)
рд╕рдорд╛рдкреНрдд

core.add_acl(рдлрд╝рд╛рдЗрд▓рдирд╛рдо, рдХреБрдВрдЬреА)
рдкреНрд░рд╕рдВрдЧ: init, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛, рдирдореВрдирд╛-рд▓рд╛рдиреЗ, рдХрдирд╡рд░реНрдЯрд░

рдПрд╕реАрдПрд▓ рдЬреЛрдбрд╝реЗрдВ рдХреБрдВрдЬреА рдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд ACLs рд╕реВрдЪреА рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо.

рддрд░реНрдХ

┬╖ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЬреЛ ACL рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИред

┬╖ рдХреБрдВрдЬреА (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдХреБрдВрдЬреА рдЬреЛ рдЬреЛрдбрд╝реА рдЬрд╛рдПрдЧреАред

core.del_acl(рдлрд╝рд╛рдЗрд▓рдирд╛рдо, рдХреБрдВрдЬреА)
рдкреНрд░рд╕рдВрдЧ: init, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛, рдирдореВрдирд╛-рд▓рд╛рдиреЗ, рдХрдирд╡рд░реНрдЯрд░

рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд ACL рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣рдЯрд╛рдПрдБ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдПрд╕реАрдПрд▓ рдХреА рд╕реВрдЪреА рдореЗрдВ
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо.

рддрд░реНрдХ

┬╖ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЬреЛ ACL рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИред

┬╖ рдХреБрдВрдЬреА (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╡рд╣ рдХреБрдВрдЬреА рдЬреЛ рд╣рдЯрд╛ рджреА рдЬрд╛рдПрдЧреА.

core.del_map(рдлрд╝рд╛рдЗрд▓рдирд╛рдо, рдХреБрдВрдЬреА)
рдкреНрд░рд╕рдВрдЧ: init, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛, рдирдореВрдирд╛-рд▓рд╛рдиреЗ, рдХрдирд╡рд░реНрдЯрд░

рд╕рдВрджрд░реНрднрд┐рдд рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдорд┐рдд рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ
рдЙрд╕рдХреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реЗ.

рддрд░реНрдХ

┬╖ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЬреЛ рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред

┬╖ рдХреБрдВрдЬреА (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╡рд╣ рдХреБрдВрдЬреА рдЬреЛ рд╣рдЯрд╛ рджреА рдЬрд╛рдПрдЧреА.

core.msleep(рдорд┐рд▓реАрд╕реЗрдХрдВрдб)
рдкреНрд░рд╕рдВрдЧ: рдмреЙрдбреА, рдЗрдирд┐рдЯ, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛

RSI рдХреЛрд░.рдПрдордПрд╕рд▓реАрдк() рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдмреАрдЪ рд▓реБрдЖ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ рдорд┐рд▓реАрд╕реЗрдХреЗрдВрдб (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдЖрд╡рд╢реНрдпрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб.

core.register_action(рдирд╛рдо, рдХрд╛рд░реНрд░рд╡рд╛рдИ, func)
рдкреНрд░рд╕рдВрдЧ: рддрди

рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВред рд╕рднреА рдкрдВрдЬреАрдХреГрдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
HAProxy рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ "lua" рдХреЗ рд╕рд╛рдеред рдХрд┐рд╕реА рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ TXN рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдорд┐рд▓рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдирд╛рдо рд╣реИ.

┬╖ рдХрд╛рд░реНрд░рд╡рд╛рдИ (рддрд╛рд▓рд┐рдХрд╛) - рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдЬреЛ HAProxy рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ
рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ. рдЕрдкреЗрдХреНрд╖рд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдВ рд╣реИрдВ 'tcp-req', 'tcp-res',
'http-req' рдпрд╛ 'http-res'ред

┬╖ рд╕рдорд╛рд░реЛрд╣ (рд╕рдорд╛рд░реЛрд╣) -- рд▓реВрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ:

рдлрд╝рдВрдХреНрд╢рди(txn)

┬╖

TXN (TXN рдХрдХреНрд╖рд╛): рдЗрд╕рдХрд╛ is a TXN рд╡рд╕реНрддреБ рдкреНрд░рдпреБрдХреНрдд рдПрд╕рдЯреА рдЫреЗрдбрд╝рдЦрд╛рдиреА la
рд╡рд░реНрддрдорд╛рди рдЕрдиреБрд░реЛрдз рдпрд╛ рдЯреАрд╕реАрдкреА рд╕реНрдЯреНрд░реАрдоред

рдпрд╣рд╛рдВ, рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкрдВрдЬреАрдХрд░рдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдмрд╕ рдПрдХ 'рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб' рднреЗрдЬреЗрдВ
рд▓реЙрдЧред

core.register_action("рд╣реИрд▓реЛ-рд╡рд░реНрд▓реНрдб", { "tcp-req", "http-req" }, рдлрд╝рдВрдХреНрд╢рди(txn)
txn: рдЬрд╛рдирдХрд╛рд░реА ("рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб")
рд╕рдорд╛рдкреНрдд)
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ HAproxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдлреНрд░рдВрдЯрдПрдВрдб tcp_frt
рдореЛрдб рдЯреАрд╕реАрдкреА
рдЯреАрд╕реАрдкреА-рдЕрдиреБрд░реЛрдз рд╕рд╛рдордЧреНрд░реА lua.hello-world

рдлреНрд░рдВрдЯрдПрдВрдб http_frt
рдореЛрдб http
http-рдЕрдиреБрд░реЛрдз lua.hello-world

core.register_converters(рдирд╛рдо, func)
рдкреНрд░рд╕рдВрдЧ: рддрди

рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВред рд╕рднреА рдкрдВрдЬреАрдХреГрдд рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
HAProxy рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ "lua" рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдХрдирд╡рд░реНрдЯрд░ рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд┐рд▓рддреА рд╣реИ рдФрд░
рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рдПрдБред рдкрдВрдЬреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди рдЕрдзрд┐рдХрддрдо 9 рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ
рдкреИрд░рд╛рдореАрдЯрд░. рд╕рднреА рдорд╛рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИрдВ.

рддрд░реНрдХ

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдирд╛рдо рд╣реИ.

┬╖ рд╕рдорд╛рд░реЛрд╣ (рд╕рдорд╛рд░реЛрд╣) -- рд▓реВрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ:

рдлрд╝рдВрдХреНрд╢рди (str, [p1 [, p2 [, ... [, p5]]]])

┬╖ str (рд╕реНрдЯреНрд░рд┐рдВрдЧ): рдпрд╣ рдЗрдирдкреБрдЯ рдорд╛рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

┬╖ p1 .. p5 (рд╕реНрдЯреНрд░рд┐рдВрдЧ): рдпрд╣ рд╣рд╛рд░реЙрдХреНрд╕реА рдореЗрдВ рдШреЛрд╖рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ
рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ред рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 5 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ. рдЖрджреЗрд╢ рдФрд░
рдЗрдирдХреА рдкреНрд░рдХреГрддрд┐ рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреА рдЬрд╛рддреА рд╣реИред

core.register_fetches(рдирд╛рдо, func)
рдкреНрд░рд╕рдВрдЧ: рддрди

рдирдореВрдирд╛ рд▓рд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВред рд╕рднреА рдкрдВрдЬреАрдХреГрдд рдирдореВрдиреЗ рд▓рд╛рдП рдЬрд╛рдПрдВрдЧреЗ
HAProxy рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ "lua" рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд▓реБрдЖ рдирдореВрдирд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ. рдкрдВрдЬреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ 9 рдорд╛рди рддрдХ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рд╕рднреА
рдорд╛рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИрдВред

рддрд░реНрдХ

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдирд╛рдо рд╣реИ.

┬╖ рд╕рдорд╛рд░реЛрд╣ (рд╕рдорд╛рд░реЛрд╣) -- рд▓реВрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирдореВрдирд╛ рд▓рд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ:

рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди (рдЯреАрдПрдХреНрд╕рдПрди, [рдкреА1 [, рдкреА2 [, тАЛтАЛ... [, рдкреА5]]]])

┬╖ TXN (TXN рдХрдХреНрд╖рд╛): рдпрд╣ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрд░реЛрдз рд╕реЗ рд╕рдВрдмрджреНрдз txn рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред

┬╖ p1 .. p5 (рд╕реНрдЯреНрд░рд┐рдВрдЧ): рдпрд╣ рд╣рд╛рд░реЙрдХреНрд╕реА рдореЗрдВ рдШреЛрд╖рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ
рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ред рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 5 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ. рдЖрджреЗрд╢ рдФрд░
рдЗрдирдХреА рдкреНрд░рдХреГрддрд┐ рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреА рдЬрд╛рддреА рд╣реИред

┬╖ рд░рд┐рдЯрд░реНрди: рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рдбреЗрдЯрд╛ рд╣реИ, рдпрджрд┐ рдорд╛рди рдЕрднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддреЛ рд╢реВрдиреНрдпред

рд▓реБрдЖ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:

core.register_fetches("рд╣реИрд▓реЛ", рдлрд╝рдВрдХреНрд╢рди(txn)
рд╡рд╛рдкрд╕реА "рд╣реИрд▓реЛ"
рд╕рдорд╛рдкреНрдд)
HAProxy рдЙрджрд╛рд╣рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕:

рдЕрдЧреНрд░рднрд╛рдЧ рдЙрджрд╛рд╣рд░рдг
http-рдЕрдиреБрд░реЛрдз рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рд╕реНрдерд╛рди /%[lua.hello]

core.register_service(рдирд╛рдо, рдореЛрдб, func)
рдкреНрд░рд╕рдВрдЧ: рддрди

рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВред рд╕рднреА рдкрдВрдЬреАрдХреГрдд рд╕реЗрд╡рд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ
HAProxy рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ "lua" рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╕реЗрд╡рд╛ рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдорд┐рд▓рддрд╛ рд╣реИ
рдЖрд╡рд╢реНрдпрдХ рдореЛрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░.

рддрд░реНрдХ

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдирд╛рдо рд╣реИ.

┬╖ рдореЛрдб (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрд╡рд╢реНрдпрдХ рдореЛрдб рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред рдХреЗрд╡рд▓ 'рдЯреАрд╕реАрдкреА' рдпрд╛
'http' рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ.

┬╖ рд╕рдорд╛рд░реЛрд╣ (рд╕рдорд╛рд░реЛрд╣) -- рд▓реВрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ:

рдлрд╝рдВрдХреНрд╢рди(рдПрдкреНрд▓реЗрдЯ)

┬╖ рдПрдкреНрд▓реЗрдЯ рдПрдкреНрд▓реЗрдЯ рд╣реЛрдЧрд╛ рдПрдХ AppletTCP рдХрдХреНрд╖рд╛ рдпрд╛ рдПрдХ AppletHTTP рдХрдХреНрд╖рд╛. рдпрд╣ рдкреНрд░рдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
рдкрдВрдЬреАрдХреГрдд рдПрдкреНрд▓реЗрдЯ рдХрд╛. рдХреЗ рд▓рд┐рдП 'http' рдорд╛рди рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рдПрдХ рдПрдкреНрд▓реЗрдЯ рдореЛрдб
рдкреИрд░рд╛рдореАрдЯрд░ рдорд┐рд▓реЗрдЧрд╛ a AppletHTTP рдХрдХреНрд╖рд╛ред рдЕрдЧрд░ рдореЛрдб рдорд╛рди 'рдЯреАрд╕реАрдкреА' рд╣реИ, рдПрдкреНрд▓реЗрдЯ рд╣реЛрдЧрд╛
рдПрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ AppletTCP рдХрдХреНрд╖рд╛.

рдЪреЗрддрд╛рд╡рдиреА: 'http' рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдкреНрд▓реЗрдЯреНрд╕ рдХреЛ 'tcp-' рд╕реЗ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛' рдирд┐рдпрдо рд╕реЗрдЯ рдХреЗрд╡рд▓ la 'рдПрдЪрдЯреАрдЯреАрдкреА-'
рдирд┐рдпрдо-рд╕реЗрдЯ рдЕрдзрд┐рдХреГрдд рд╣реИрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ HTTP рдПрдкреНрд▓реЗрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ
рдЯреАрд╕реАрдкреА рдореЛрдб рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реАред 'tcp' рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдкреНрд▓реЗрдЯ рдХрд╣реАрдВ рд╕реЗ рднреА рдХреЙрд▓ рдХрд┐рдпреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ, рд╕реЗрд╡рд╛ рдкрдВрдЬреАрдХрд░рдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реЗрд╡рд╛ рдХреЗрд╡рд▓ 'рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб' рднреЗрдЬрддреА рд╣реИ
http рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛.

core.register_service("рд╣реИрд▓реЛ-рд╡рд░реНрд▓реНрдб", "http", рдлрд╝рдВрдХреНрд╢рди(рдПрдкреНрд▓реЗрдЯ)
рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ = "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!"
рдПрдкреНрд▓реЗрдЯ:set_status(200)
рдПрдкреНрд▓реЗрдЯ: add_header ("рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ", рд╕реНрдЯреНрд░рд┐рдВрдЧ.рд▓реЗрди (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛))
рдПрдкреНрд▓реЗрдЯ: add_header ("рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░", "рдкрд╛рда/рд╕рд╛рджрд╛")
рдПрдкреНрд▓реЗрдЯ:start_response()
рдПрдкреНрд▓реЗрдЯ:рднреЗрдЬреЗрдВ(рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛)
рд╕рдорд╛рдкреНрдд)
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ HAproxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдЕрдЧреНрд░рднрд╛рдЧ рдЙрджрд╛рд╣рд░рдг
http-рдЕрдиреБрд░реЛрдз рдЙрдкрдпреЛрдЧ-рд╕реЗрд╡рд╛ lua.hello-world

core.register_init(func)
рдкреНрд░рд╕рдВрдЧ: рддрди

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ
рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ.

рддрд░реНрдХ

┬╖ рд╕рдорд╛рд░реЛрд╣ (рд╕рдорд╛рд░реЛрд╣) -- рд▓реВрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ:

рд╕рдорд╛рд░реЛрд╣()
рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЗрдирдкреБрдЯ рдирд╣реАрдВ рд▓рдЧрддрд╛, рдФрд░ рдХреЛрдИ рдЖрдЙрдЯрдкреБрдЯ рдЕрдкреЗрдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИред

core.register_task (func)
рдкреНрд░рд╕рдВрдЧ: рдмреЙрдбреА, рдЗрдирд┐рдЯ, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛, рдирдореВрдирд╛-рдкреНрд░рд╛рдкреНрддрд┐, рдХрдирд╡рд░реНрдЯрд░

рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд░реЗрдВред рдХрд╛рд░реНрдп рддрдм рдкреНрд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИ рдЬрдм HAProxy main
рд╢реЗрдбреНрдпреВрд▓рд░ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИ. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ.

рддрд░реНрдХ

┬╖ рд╕рдорд╛рд░реЛрд╣ (рд╕рдорд╛рд░реЛрд╣) -- рд▓реВрдЖ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ:

рд╕рдорд╛рд░реЛрд╣()
рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЗрдирдкреБрдЯ рдирд╣реАрдВ рд▓рдЧрддрд╛, рдФрд░ рдХреЛрдИ рдЖрдЙрдЯрдкреБрдЯ рдЕрдкреЗрдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИред

core.set_nice(рдЕрдЪреНрдЫрд╛)
рдкреНрд░рд╕рдВрдЧ: рдХрд╛рд░реНрдп, рдХрд╛рд░реНрд░рд╡рд╛рдИ, рдирдореВрдирд╛-рдкреНрд░рд╛рдкреНрддрд┐, рдХрдирд╡рд░реНрдЯрд░

рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдпрд╛ рд╡рд░реНрддрдорд╛рди рд╕рддреНрд░ рдХрд╛ рд╕реНрд╡рд░реВрдк рдмрджрд▓реЗрдВред

рддрд░реНрдХ

┬╖ рдЕрдЪреНрдЫрд╛ (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдЕрдЪреНрдЫрд╛ рдорд╛рди, рдпрд╣ -1024 рдФрд░ 1024 рдХреЗ рдмреАрдЪ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

core.set_map(рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, рдХреБрдВрдЬреА, рдореВрд▓реНрдп)
рдкреНрд░рд╕рдВрдЧ: init, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛, рдирдореВрдирд╛-рд▓рд╛рдиреЗ, рдХрдирд╡рд░реНрдЯрд░

рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдореВрд▓реНрдп рдХреБрдВрдЬреА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо.

рддрд░реНрдХ

┬╖ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдорд╛рдирдЪрд┐рддреНрд░ рд╕рдВрджрд░реНрдн

┬╖ рдХреБрдВрдЬреА (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╕реЗрдЯ рдХрд░рдиреЗ рдпрд╛ рдмрджрд▓рдиреЗ рдХреА рдХреБрдВрдЬреА

┬╖ рдореВрд▓реНрдп (рд╕реНрдЯреНрд░рд┐рдВрдЧ)--рд╕рдВрдмрдВрдзрд┐рдд рдореВрд▓реНрдп

рдХреЛрд░.рдиреАрдВрдж(int рд╕реЗрдХрдВрдб)
рдкреНрд░рд╕рдВрдЧ: рдмреЙрдбреА, рдЗрдирд┐рдЯ, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛

RSI рдХреЛрд░.рдиреАрдВрдж() рдлрд╝рдВрдХреНрд╢рдВрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрдХрдВрдб рдХреЗ рдмреАрдЪ рд▓реБрдЖ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВред

рддрд░реНрдХ

┬╖ рд╕реЗрдХрдВрдб (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдХрдВрдб.

рдХреЛрд░.tcp()
рдкреНрд░рд╕рдВрдЧ: init, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛

рдпрд╣ рдлрд╝рдВрдХреНрд╢рди a рдХрд╛ рдПрдХ рдирдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рд╕реЙрдХреЗрдЯ рд╡рд░реНрдЧ.

рд░рд┐рдЯрд░реНрди
A рдЧрд░реНрддрд┐рдХрд╛ рдХрдХреНрд╖рд╛ рд╡рд╕реНрддреБред

рдХреЛрд░.рдбрди(рдбреЗрдЯрд╛)
рдкреНрд░рд╕рдВрдЧ: рдмреЙрдбреА, рдЗрдирд┐рдЯ, рдХрд╛рд░реНрдп, рдХреНрд░рд┐рдпрд╛, рдирдореВрдирд╛-рдкреНрд░рд╛рдкреНрддрд┐, рдХрдирд╡рд░реНрдЯрд░

рддрд░реНрдХ

┬╖ рддрд┐рдерд┐ (рдХреЛрдИ)--рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдВред рдпрд╣ рдЗрд╕рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧреА рд╣реИ
рдирдореВрдирд╛-рд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рдирдореВрдирд╛-рдкрд░рд┐рд╡рд░реНрддрдХред

рд╡рд░реНрддрдорд╛рди рд▓реБрдЖ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рддреБрд░рдВрдд рд░реЛрдХ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХ рдирдореВрдирд╛ рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдХрдирд╡рд░реНрдЯрд░ рдпрд╛ рдПрдХ рдХреНрд░рд┐рдпрд╛ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ (рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП)ред рдЗрд╕рдХрд╛ рдкреНрд░рдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм LUA рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддреА рд╣реИ
рд╢реЗрд╖ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ HAProxy рдкрд░ рд╡рд╛рдкрд╕ рд░рдЦреЗрдВред рдЗрд╕реЗ рдРрд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХ рдмрд╣реБ-рд╕реНрддрд░реАрдп "рд╡рд╛рдкрд╕реА"ред

рдХреЛрд░.рдпреАрд▓реНрдб()
рдкреНрд░рд╕рдВрдЧ: рдХрд╛рд░реНрдп, рдХрд╛рд░реНрд░рд╡рд╛рдИ, рдирдореВрдирд╛-рдкреНрд░рд╛рдкреНрддрд┐, рдХрдирд╡рд░реНрдЯрд░

HAProxy рд╢реЗрдбреНрдпреВрд▓рд░ рдкрд░ рд╣рд╛рде рд╡рд╛рдкрд╕ рджреЗрдВред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ LUA рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

рдХрдХреНрд╖рд╛ рдлрд╝реЗрдЪреЗрд╕()
рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЖрдВрддрд░рд┐рдХ HAProxy рдирдореВрдирд╛ рдлрд╝реЗрдЪ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред HAProxy рджреЗрдЦреЗрдВ
рдЙрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП "configuration.txt" рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ред рд╡реЗ рд╣реИрдВ
рдЕрдзреНрдпрд╛рдп 7.3.2 рд╕реЗ 7.3.6.

рдЪреЗрддрд╛рд╡рдиреА рдХреБрдЫ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреБрдЫ рдирдореВрдиреЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред рдпреЗ рд╕реАрдорд╛рдПрдБ
рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрдм рд╡реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛрдВред

рджреЗрдЦ рдЯреАрдПрдХреНрд╕рдПрди.рдПрдл

рджреЗрдЦ TXN.sf

рдлрд╝реЗрдЪ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИрдВ:

┬╖ рд╕рд┐рд╕реНрдЯрдо рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ,

┬╖ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ,

┬╖ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ,

┬╖ рдЬреНрдЮрд╛рдд рдмреИрдХрдПрдВрдб рд╕реНрдерд┐рддрд┐ рдЬреИрд╕реЗ рдХрддрд╛рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛
рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд,

┬╖ рдЧреНрд░рд╛рд╣рдХ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЬреИрд╕реЗ рдЖрдИрдкреА рд╕реНрд░реЛрдд рдпрд╛ рдЧрдВрддрд╡реНрдп,

┬╖ рд╕реНрдЯрд┐рдХ рдЯреЗрдмрд▓ рд╕реЗ рдирд┐рдкрдЯреЗрдВ,

┬╖ рд╕реНрдерд╛рдкрд┐рдд рдПрд╕рдПрд╕рдПрд▓ рд╕реВрдЪрдирд╛рдПрдВ,

┬╖ HTTP рдЬрд╛рдирдХрд╛рд░реА рдЬреИрд╕реЗ рд╣реЗрдбрд░ рдпрд╛ рд╡рд┐рдзрд┐ред

рдлрд╝рдВрдХреНрд╢рди рдХреНрд░рд┐рдпрд╛(txn)
- рд╕реНрд░реЛрдд рдЖрдИрдкреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕реНрдерд╛рдиреАрдп рдЧреНрд░рд╛рд╣рдХ = txn.f:src()
рд╕рдорд╛рдкреНрдд

рдХрдХреНрд╖рд╛ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕()
рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЖрдВрддрд░рд┐рдХ HAProxy рдирдореВрдирд╛ рдХрдирд╡рд░реНрдЯрд░реНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред HAProxy рджреЗрдЦреЗрдВ
рдЙрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ "configuration.txt"ред рдпрд╣ рд╣реИ
рдЕрдзреНрдпрд╛рдп 7.3.1ред

рджреЗрдЦ рдЯреАрдПрдХреНрд╕рдПрди.рд╕реА

рджреЗрдЦ TXN.рдПрд╕рд╕реА

рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рд╕реНрдЯреЗрдЯрдлреБрд▓ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИрдВ:

┬╖ рдЗрдирдкреБрдЯ рдХреЛ рдмреЗрд╕64 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛,

┬╖ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рд╣реИрд╢ рд▓рдЧрд╛рдирд╛ (djb2, crc32, sdbm, wt6),

┬╖ рдкреНрд░рд╛рд░реВрдк рджрд┐рдирд╛рдВрдХ,

┬╖ рдЬреЗрд╕рди рдПрд╕реНрдХреЗрдк,

┬╖ рджреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдХреЗ рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдирд┐рдХрд╛рд▓рдирд╛,

┬╖ рдирд┐рдЪрд▓реЗ рдпрд╛ рдКрдкрд░реА рд╡рд░реНрдгреЛрдВ рдХреА рдУрд░ рдореБрдбрд╝реЗрдВ,

┬╖ рд╕реНрдЯрд┐рдХ рдЯреЗрдмрд▓ рд╕реЗ рдирд┐рдкрдЯреЗрдВ.

рдХрдХреНрд╖рд╛ рдЪреИрдирд▓()
HAProxy рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рджреЛ рдмрдлрд╝рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде (рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд╕рд░реНрд╡рд░ рддрдХ) рдФрд░ рджреВрд╕рд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ (рд╕рд░реНрд╡рд░ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рддрдХ)ред

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд░реЗрдЦ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЪреИрдирд▓ рдХреНрд▓рд╛рд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛рдБ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред

рдЪреЗрддрд╛рд╡рдиреА: рдЕрдиреБрд░реЛрдз рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдкрдврд╝рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рд╣реИ
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдЪреИрдирд▓ рдХреЛ рдкрдврд╝рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
[рдЪрд┐рддреНрд░]

рдЪреИрдирд▓.рдбреБрдк(рдЪреИрдирд▓)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рдмрдлрд╝рд░ рд╣реЛрддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ
рдмрдлрд╝рд░ рд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдкреБрди: рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рдмрдлрд╝рд░ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рдкрд╛рддрд╛ рд╣реИ, рддреЛ 'рд╢реВрдиреНрдп' рдорд╛рди рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ рдЪреИрдирд▓ (рдХреНрд▓рд╛рд╕_рдЪреИрдирд▓) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪреИрдирд▓ред

рд░рд┐рдЯрд░реНрди
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдпрд╛ рд╢реВрдиреНрдп рд╣реЛред

рдЪреИрдирд▓.рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ(рдЪреИрдирд▓)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рдмрдлрд╝рд░ рд╣реЛрддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдХреА рдЦрдкрдд рд╣реЛрддреА рд╣реИ
рдмрдлрд╝рд░ рд╕реЗ.

рдпрджрд┐ рдмрдлрд╝рд░ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рдкрд╛рддрд╛ рд╣реИ, рддреЛ 'рд╢реВрдиреНрдп' рдорд╛рди рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ рдЪреИрдирд▓ (рдХреНрд▓рд╛рд╕_рдЪреИрдирд▓) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪреИрдирд▓ред

рд░рд┐рдЯрд░реНрди
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдпрд╛ рд╢реВрдиреНрдп рд╣реЛред

рдЪреИрдирд▓.рдЧреЗрдЯрд▓рд╛рдЗрди(рдЪреИрдирд▓)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрдлрд╝рд░ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╣реЛрддреА рд╣реИред рдЖрдВрдХрдбрд╝рд╛
рдЙрдкрднреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рдпрджрд┐ рд▓реМрдЯрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо 'рдПрди' рдирд╣реАрдВ рд╣реИ рддреЛ рдЗрд╕реЗ рдЗрд╕рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдорд╛рди рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдмрдлрд╝рд░ рдореЗрдВ рдЕрдВрддрд┐рдо рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ред

рдпрджрд┐ рдмрдлрд╝рд░ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рдкрд╛рддрд╛ рд╣реИ, рддреЛ 'рд╢реВрдиреНрдп' рдорд╛рди рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ рдЪреИрдирд▓ (рдХреНрд▓рд╛рд╕_рдЪреИрдирд▓) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪреИрдирд▓ред

рд░рд┐рдЯрд░реНрди
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд▓рд╛рдЗрди рдпрд╛ рд╢реВрдиреНрдп рд╣реИред

рдЪреИрдирд▓.рд╕реЗрдЯ(рдЪреИрдирд▓, рдбреЛрд░реА)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдмрдлрд╝рд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ
рдХреЙрдкреА рдХреА рдЧрдИ рд▓рдВрдмрд╛рдИ, рдЕрдиреНрдпрдерд╛, рдпрд╣ -1 рд▓реМрдЯрд╛рддреА рд╣реИред

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ. рд╡реЗ HAProxy рдХреЗ рдЦрд╝рддреНрдо рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ
рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг, рддрд╛рдХрд┐ рдмрдлрд░ рднрд░рд╛ рдЬрд╛ рд╕рдХреЗред

рддрд░реНрдХ

┬╖ рдЪреИрдирд▓ (рдХреНрд▓рд╛рд╕_рдЪреИрдирд▓) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪреИрдирд▓ред

┬╖ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдЬреЛ рдбреЗрдЯрд╛ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛.

рд░рд┐рдЯрд░реНрди
рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдЬрд┐рд╕рдореЗрдВ рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдмрд╛рдЗрдЯреНрд╕ рдХреА рдорд╛рддреНрд░рд╛ рдпрд╛ -1 рд╣реЛрддреА рд╣реИред

рдЪреИрдирд▓.рдЬреЛрдбрд╝реЗрдВ(рдЪреИрдирд▓, рдбреЛрд░реА)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрд░реНрдХ рдХреЛ рдмрдлрд╝рд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо
рдХреЙрдкреА рдХреА рдЧрдИ рд▓рдВрдмрд╛рдИ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛, рдпрд╣ -1 рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ. рд╡реЗ HAProxy рдХреЗ рдЦрд╝рддреНрдо рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ
рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг, рддрд╛рдХрд┐ рдмрдлрд░ рднрд░рд╛ рдЬрд╛ рд╕рдХреЗред

рддрд░реНрдХ

┬╖ рдЪреИрдирд▓ (рдХреНрд▓рд╛рд╕_рдЪреИрдирд▓) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪреИрдирд▓ред

┬╖ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдЬреЛ рдбреЗрдЯрд╛ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛.

рд░рд┐рдЯрд░реНрди
рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдЬрд┐рд╕рдореЗрдВ рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдмрд╛рдЗрдЯреНрд╕ рдХреА рдорд╛рддреНрд░рд╛ рдпрд╛ -1 рд╣реЛрддреА рд╣реИред

рдЪреИрдирд▓.рднреЗрдЬреЗрдВ(рдЪреИрдирд▓, рдбреЛрд░реА)
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЛ рддрддреНрдХрд╛рд▓ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬрдм рддрдХ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рди рд╣реЛ
рдмрдВрдж рдХрд░реЗрдВ, рдмрдлрд╝рд░ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдлреНрд▓рд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рднреЗрдЬреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред

рддрд░реНрдХ

┬╖ рдЪреИрдирд▓ (рдХреНрд▓рд╛рд╕_рдЪреИрдирд▓) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪреИрдирд▓ред

┬╖ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдЬреЛ рдбреЗрдЯрд╛ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛.

рд░рд┐рдЯрд░реНрди
рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдЬрд┐рд╕рдореЗрдВ рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдмрд╛рдЗрдЯреНрд╕ рдХреА рдорд╛рддреНрд░рд╛ рдпрд╛ -1 рд╣реЛрддреА рд╣реИред

рдЪреИрдирд▓.get_in_length(рдЪреИрдирд▓)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдмрдлрд╝рд░ рдХреЗ рдЗрдирдкреБрдЯ рднрд╛рдЧ рдХреА рд▓рдВрдмрд╛рдИ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ рдЪреИрдирд▓ (рдХреНрд▓рд╛рд╕_рдЪреИрдирд▓) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪреИрдирд▓ред

рд░рд┐рдЯрд░реНрди
рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдмрд╛рдЗрдЯреНрд╕ рдХреА рдорд╛рддреНрд░рд╛ рд╣реЛрддреА рд╣реИред

рдЪреИрдирд▓.рдЧреЗрдЯ_рдЖрдЙрдЯ_рд▓реЗрдВрде(рдЪреИрдирд▓)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдмрдлрд╝рд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рднрд╛рдЧ рдХреА рд▓рдВрдмрд╛рдИ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ рдЪреИрдирд▓ (рдХреНрд▓рд╛рд╕_рдЪреИрдирд▓) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪреИрдирд▓ред

рд░рд┐рдЯрд░реНрди
рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдмрд╛рдЗрдЯреНрд╕ рдХреА рдорд╛рддреНрд░рд╛ рд╣реЛрддреА рд╣реИред

рдЪреИрдирд▓.рдлрд╝реЙрд░рд╡рд░реНрдб(рдЪреИрдирд▓, NS)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдмрдлрд╝рд░ рдХреЗ рдЗрдирдкреБрдЯ рднрд╛рдЧ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рднрд╛рдЧ рдореЗрдВ рдмрд╛рдЗрдЯреНрд╕ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ рдЪреИрдирд▓ (рдХреНрд▓рд╛рд╕_рдЪреИрдирд▓) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪреИрдирд▓ред

┬╖ int (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдЬрд┐рд╕реЗ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХрдХреНрд╖рд╛ рдПрдЪрдЯреАрдЯреАрдкреА()
рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рд╕рднреА HTTP рд╣реЗрд░рдлреЗрд░ рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

HTTP.req_get_headers(http)
рд╕рднреА рдЕрдиреБрд░реЛрдз рд╢реАрд░реНрд╖рд▓реЗрдЦреЛрдВ рд╡рд╛рд▓реА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

рд░рд┐рдЯрд░реНрди
рд╢реАрд░реНрд╖рд▓реЗрдЦреЛрдВ рдХреА рд╕рд░рдгреА.

рджреЗрдЦ HTTP.res_get_headers()

рдпрд╣ рд▓реМрдЯрд╛рдИ рдЧрдИ рд╕рд░рдгреА рдХрд╛ рд░реВрдк рд╣реИ:

HTTP:req_get_headers()[' '][ ] = " "

рд╕реНрдерд╛рдиреАрдп рдПрдЪрдбреАрдЖрд░ = HTTP:req_get_headers()
рдПрдЪрдбреАрдЖрд░["рд╣реЛрд╕реНрдЯ"][0] = "www.test.com"
рдПрдЪрдбреАрдЖрд░["рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ"][0] = "рдСрдбрд┐рдпреЛ/рдмреЗрд╕рд┐рдХ рдХреНрдпреВ=1"
рдПрдЪрдбреАрдЖрд░["рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ"][1] = "рдСрдбрд┐рдпреЛ/*, рдХреНрдпреВ=0.2"
hdr["рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ"][2] = "*/*, q=0.1"

HTTP.res_get_headers(http)
рд╕рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢реАрд░реНрд╖рд▓реЗрдЦреЛрдВ рд╡рд╛рд▓реА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

рд░рд┐рдЯрд░реНрди
рд╢реАрд░реНрд╖рд▓реЗрдЦреЛрдВ рдХреА рд╕рд░рдгреА.

рджреЗрдЦ HTTP.req_get_headers()

рдпрд╣ рд▓реМрдЯрд╛рдИ рдЧрдИ рд╕рд░рдгреА рдХрд╛ рд░реВрдк рд╣реИ:

HTTP:res_get_headers()[' '][ ] = " "

рд╕реНрдерд╛рдиреАрдп рдПрдЪрдбреАрдЖрд░ = HTTP:req_get_headers()
рдПрдЪрдбреАрдЖрд░["рд╣реЛрд╕реНрдЯ"][0] = "www.test.com"
рдПрдЪрдбреАрдЖрд░["рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ"][0] = "рдСрдбрд┐рдпреЛ/рдмреЗрд╕рд┐рдХ рдХреНрдпреВ=1"
рдПрдЪрдбреАрдЖрд░["рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ"][1] = "рдСрдбрд┐рдпреЛ/*, рдХреНрдпреВ=0.2"
hdr["рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ"][2] = "*.*, q=0.1"

HTTP.req_add_header(http, рдирд╛рдо, рдореВрд▓реНрдп)
рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХ HTTP рд╣реЗрдбрд░ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо "рдирд╛рдо" рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ
рдЬрд┐рд╕рдХрд╛ рдореВрд▓реНрдп "рдореВрд▓реНрдп" рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдирд╛рдо.

┬╖ рдореВрд▓реНрдп (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдорд╛рди.

рджреЗрдЦ HTTP.res_add_header()

HTTP.res_add_header(http, рдирд╛рдо, рдореВрд▓реНрдп)
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ HTTP рд╣реЗрдбрд░ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо "рдирд╛рдо" рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ
рдЬрд┐рд╕рдХрд╛ рдореВрд▓реНрдп "рдореВрд▓реНрдп" рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдирд╛рдо.

┬╖ рдореВрд▓реНрдп (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдорд╛рди.

рджреЗрдЦ HTTP.req_add_header()

HTTP.req_del_header(http, рдирд╛рдо)
рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЙрди рд╕рднреА HTTP рд╣реЗрдбрд░ рдлрд╝реАрд▓реНрдб рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдирд╛рдо "рдирд╛рдо" рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдирд╛рдо.

рджреЗрдЦ HTTP.res_del_header()

HTTP.res_del_header(http, рдирд╛рдо)
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЙрди рд╕рднреА HTTP рд╣реЗрдбрд░ рдлрд╝реАрд▓реНрдб рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдирд╛рдо "рдирд╛рдо" рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдирд╛рдо.

рджреЗрдЦ HTTP.req_del_header()

HTTP.req_set_header(http, рдирд╛рдо, рдореВрд▓реНрдп)
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕рднреА рд╣реЗрдбрд░ "рдирд╛рдо" рдХреА рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдпреБрдХреНрдд рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ
рдореВрд▓реНрдп"ред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдирд╛рдо.

┬╖ рдореВрд▓реНрдп (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдорд╛рди.

рджреЗрдЦ HTTP.res_set_header()

рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдлрд╝реЙрд▓реЛрд╡рд┐рдВрдЧ рдХреЛрдб рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:

рдлрд╝рдВрдХреНрд╢рди fcn(txn)
TXN.http:req_del_header("рд╣реЗрдбрд░")
TXN.http:req_add_header("рд╣реЗрдбрд░", "рд╡реИрд▓реНрдпреВ")
рд╕рдорд╛рдкреНрдд

HTTP.res_set_header(http, рдирд╛рдо, рдореВрд▓реНрдп)
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕рднреА рд╣реЗрдбрд░ "рдирд╛рдо" рдХреА рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдпреБрдХреНрдд рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ
рдореВрд▓реНрдп"ред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдирд╛рдо.

┬╖ рдореВрд▓реНрдп (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдорд╛рди.

рджреЗрдЦ HTTP.req_rep_header()

HTTP.req_rep_header(http, рдирд╛рдо, рд░реЗрдЧреЗрдХреНрд╕, рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ)
рд╣реЗрдбрд░ рдлрд╝реАрд▓реНрдб "рдирд╛рдо" рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
"рд░реЗрдЧреЗрдХреНрд╕" рдХреЗ рд▓рд┐рдП, рдФрд░ рдЙрдиреНрд╣реЗрдВ "рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ" рддрд░реНрдХ рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореВрд▓реНрдп
рдЗрд╕рдореЗрдВ 1, 2, рдЬреИрд╕реЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрджрд░реНрдн рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ... рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдирд╛рдо.

┬╖ regex (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдореИрдЪ рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди.

┬╖ рдХреА рдЬрдЧрд╣ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореВрд▓реНрдп.

рджреЗрдЦ HTTP.res_rep_header()

HTTP.res_rep_header(http, рдирд╛рдо, рд░реЗрдЧреЗрдХреНрд╕, рдбреЛрд░реА)
рд╣реЗрдбрд░ рдлрд╝реАрд▓реНрдб "рдирд╛рдо" рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
"рд░реЗрдЧреЗрдХреНрд╕" рдХреЗ рд▓рд┐рдП, рдФрд░ рдЙрдиреНрд╣реЗрдВ "рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ" рддрд░реНрдХ рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореВрд▓реНрдп
рдЗрд╕рдореЗрдВ 1, 2, рдЬреИрд╕реЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрджрд░реНрдн рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ... рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдирд╛рдо.

┬╖ regex (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдореИрдЪ рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди.

┬╖ рдХреА рдЬрдЧрд╣ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореВрд▓реНрдп.

рджреЗрдЦ HTTP.req_replace_header()

HTTP.req_replace_value(http, рдирд╛рдо, рд░реЗрдЧреЗрдХреНрд╕, рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ)
"HTTP.req_replace_header()" рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рд░реЗрдЧреЗрдХреНрд╕ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
рд╕рдВрдкреВрд░реНрдг рдХреЗ рдмрдЬрд╛рдп рд╣реЗрдбрд░ рдлрд╝реАрд▓реНрдб "рдирд╛рдо" рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо-рд╕реАрдорд╛рдВрдХрд┐рдд рдорд╛рди
рд╣реИрдбрд░.

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдирд╛рдо.

┬╖ regex (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдореИрдЪ рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди.

┬╖ рдХреА рдЬрдЧрд╣ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореВрд▓реНрдп.

рджреЗрдЦ HTTP.req_replace_header()

рджреЗрдЦ HTTP.res_replace_value()

HTTP.res_replace_value(http, рдирд╛рдо, рд░реЗрдЧреЗрдХреНрд╕, рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ)
"HTTP.res_replace_header()" рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рд░реЗрдЧреЗрдХреНрд╕ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
рд╕рдВрдкреВрд░реНрдг рдХреЗ рдмрдЬрд╛рдп рд╣реЗрдбрд░ рдлрд╝реАрд▓реНрдб "рдирд╛рдо" рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо-рд╕реАрдорд╛рдВрдХрд┐рдд рдорд╛рди
рд╣реИрдбрд░.

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдирд╛рдо.

┬╖ regex (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдореИрдЪ рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди.

┬╖ рдХреА рдЬрдЧрд╣ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореВрд▓реНрдп.

рджреЗрдЦ HTTP.res_replace_header()

рджреЗрдЦ HTTP.req_replace_value()

HTTP.req_set_method(http, рддрд░реАрдХрд╛)
рдкреИрд░рд╛рдореАрдЯрд░ "рд╡рд┐рдзрд┐" рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рддрд░реАрдХрд╛ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдирдИ рд╡рд┐рдзрд┐.

HTTP.req_set_path(http, рдкрде)
рдЕрдиреБрд░реЛрдз рдкрде рдХреЛ "рдкрде" рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рдкрде (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдирдИ рд░рд╛рд╣.

HTTP.req_set_query(http, рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛)
рдЕрдиреБрд░реЛрдз рдХреА рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рдмрд╛рдж рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ
("?") рдкреИрд░рд╛рдореАрдЯрд░ "рдХреНрд╡реЗрд░реА" рдХреЗ рд╕рд╛рдеред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рд╕рд╡рд╛рд▓ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдирдИ рдХреНрд╡реЗрд░реА.

HTTP.req_set_uri(http, рдЙрд░реА)
рдЕрдиреБрд░реЛрдз URI рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ "uri" рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рдЙрдбрд╝реА (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдирдИ рдЙрд░реАред

HTTP.res_set_status(http, рджрд░реНрдЬрд╛)
рдкреИрд░рд╛рдореАрдЯрд░ "рдХреЛрдб" рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд╛рд░рдг
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирдП рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ http (рдХреНрд▓рд╛рд╕_http)--рд╕рдВрдмрдВрдзрд┐рдд http рдСрдмреНрдЬреЗрдХреНрдЯред

┬╖ рд╣реИрд╕рд┐рдпрдд (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдирдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд┐рддрд┐ рдХреЛрдбред

рдХрдХреНрд╖рд╛ TXN()
txn рд╡рд░реНрдЧ рдореЗрдВ http рдпрд╛ tcp рд▓реЗрдирджреЗрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
(рдиреЛрдЯ рдПрдХ рдЯреАрд╕реАрдкреА рд╕реНрдЯреНрд░реАрдо рдПрдХ рдЯреАрд╕реАрдкреА рд▓реЗрдирджреЗрди рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ HTTP рд▓реЗрдирджреЗрди рд╣реИ
рдЯреАрд╕реАрдкреА рд╕реНрдЯреНрд░реАрдо рд╕реЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ)ред

рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, рдЙрд╕реЗ рдмрджрд▓рдиреЗ рдФрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдЗрд╕реЗ рдЖрдЧреЗ рдХрд░реЗрдВред

рдЗрд╕ рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ
рдирдореВрдирд╛-рд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ.

рдЯреАрдПрдХреНрд╕рдПрди.рд╕реА

рд░рд┐рдЯрд░реНрди
An рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрдХреНрд╖рд╛.

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред

TXN.рдПрд╕рд╕реА

рд░рд┐рдЯрд░реНрди
An рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрдХреНрд╖рд╛.

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рд╡рд╕реНрддреБ рдХреЗ рдХрд╛рд░реНрдп
рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдЯреАрдПрдХреНрд╕рдПрди.рдПрдл

рд░рд┐рдЯрд░реНрди
An рдлрд╝реЗрдЪ рдХрдХреНрд╖рд╛.

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдПрдХ Fetches рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред

TXN.sf

рд░рд┐рдЯрд░реНрди
An рдлрд╝реЗрдЪ рдХрдХреНрд╖рд╛.

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдПрдХ Fetches рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рд╡рд╕реНрддреБ рдХреЗ рдХрд╛рд░реНрдп
рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

TXN.req

рд░рд┐рдЯрд░реНрди
An рдЪреИрдирд▓ рдХрдХреНрд╖рд╛.

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдмрдлрд╝рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреИрдирд▓ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред

TXN.res

рд░рд┐рдЯрд░реНрди
An рдЪреИрдирд▓ рдХрдХреНрд╖рд╛.

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмрдлрд╝рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреИрдирд▓ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЯреАрдПрдХреНрд╕рдПрди.рдПрдЪрдЯреАрдЯреАрдкреА

рд░рд┐рдЯрд░реНрди
An HTTP рдХрдХреНрд╖рд╛.

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдПрдХ HTTP рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬрдм рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдкрд╛рд╕ рд╣реЛ
"рдореЛрдб http" рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ред

TXN.рд▓реЙрдЧ(TXN, рдЫрд╛рдВрдЯрдиреЗ рдХрд╛ рд╕реНрддрд░, рд╕рдВрджреЗрд╢)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд▓реЙрдЧ рднреЗрдЬрддрд╛ рд╣реИ. рд▓реЙрдЧ HAProxy рдХреЗ рдЕрдиреБрд╕рд╛рд░ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓, рдбрд┐рдлрд╝реЙрд▓реНрдЯ syslog рд╕рд░реНрд╡рд░ рдкрд░ рдпрджрд┐ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкрд░
рдпрджрд┐ рдЕрдиреБрдорддрд┐ рд╣реЛ рддреЛ stderr.

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

┬╖ рд▓реЙрдЧ рд╕реНрддрд░ (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдХреНрдпрд╛ рд▓реЙрдЧ рд╕реНрддрд░ рд╕рдВрджреЗрд╢ рд╕реЗ рд╕рдВрдмрджреНрдз рд╣реИред рдпрд╣ рд╣реИ рдПрдХ
0 рдФрд░ 7 рдХреЗ рдмреАрдЪ рдХреА рд╕рдВрдЦреНрдпрд╛.

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд▓реЙрдЧ рд╕рд╛рдордЧреНрд░реА.

рджреЗрдЦ core.emerg, core.alert, core.crit, core.err, core.warning, core.notice,
core.info, core.debug (рд▓реЙрдЧ рд╕реНрддрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ)

рджреЗрдЦ TXN.рдбреАрдлрд╝реНрд▓реЙрдЧ

рджреЗрдЦ TXN.рдбреАрдмрдЧ

рджреЗрдЦ TXN.рдЬрд╛рдирдХрд╛рд░реА

рджреЗрдЦ TXN.рдЪреЗрддрд╛рд╡рдиреА

рджреЗрдЦ TXN.рдЪреЗрддрд╛рд╡рдиреА

TXN.deflog (TXN, рд╕рдВрджреЗрд╢)
рд╕реЗ рд╕рдВрдмрджреНрдз рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЙрдЧрд▓реЗрд╡рд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЙрдЧ рд▓рд╛рдЗрди рднреЗрдЬрддрд╛ рд╣реИ
рд▓реЗрди-рджреЗрдиред

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд▓реЙрдЧ рд╕рд╛рдордЧреНрд░реА.

рджреЗрдЦ TXN.рд▓реЙрдЧ

TXN.рдбреАрдмрдЧ(txn, рд╕рдВрджреЗрд╢)

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд▓реЙрдЧ рд╕рд╛рдордЧреНрд░реА.

рджреЗрдЦ TXN.рд▓реЙрдЧ

рд╕реЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:

рдлрд╝рдВрдХреНрд╢рди рдбреАрдмрдЧ (рдЯреАрдПрдХреНрд╕рдПрди, рд╕рдВрджреЗрд╢)
TXN.log(txn, core.debug, рд╕рдВрджреЗрд╢)
рд╕рдорд╛рдкреНрдд

TXN.рдЬрд╛рдирдХрд╛рд░реА(txn, рд╕рдВрджреЗрд╢)

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд▓реЙрдЧ рд╕рд╛рдордЧреНрд░реА.

рджреЗрдЦ TXN.рд▓реЙрдЧ

рдлрд╝рдВрдХреНрд╢рди рдбреАрдмрдЧ (рдЯреАрдПрдХреНрд╕рдПрди, рд╕рдВрджреЗрд╢)
TXN.log (рдЯреАрдПрдХреНрд╕рдПрди, рдХреЛрд░.рдЗрдиреНрдлреЛ, рд╕рдВрджреЗрд╢)
рд╕рдорд╛рдкреНрдд

TXN.рдЪреЗрддрд╛рд╡рдиреА(txn, рд╕рдВрджреЗрд╢)

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд▓реЙрдЧ рд╕рд╛рдордЧреНрд░реА.

рджреЗрдЦ TXN.рд▓реЙрдЧ

рдлрд╝рдВрдХреНрд╢рди рдбреАрдмрдЧ (рдЯреАрдПрдХреНрд╕рдПрди, рд╕рдВрджреЗрд╢)
TXN.log(txn, core.warning, рд╕рдВрджреЗрд╢)
рд╕рдорд╛рдкреНрдд

TXN.рдЪреЗрддрд╛рд╡рдиреА(txn, рд╕рдВрджреЗрд╢)

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд▓реЙрдЧ рд╕рд╛рдордЧреНрд░реА.

рджреЗрдЦ TXN.рд▓реЙрдЧ

рдлрд╝рдВрдХреНрд╢рди рдбреАрдмрдЧ (рдЯреАрдПрдХреНрд╕рдПрди, рд╕рдВрджреЗрд╢)
TXN.log (рдЯреАрдПрдХреНрд╕рдПрди, рдХреЛрд░.рдЕрд▓рд░реНрдЯ, рд╕рдВрджреЗрд╢)
рд╕рдорд╛рдкреНрдд

TXN.get_priv(txn)
рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд▓реБрдЖ рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдВ (рдХреЗ рд╕рд╛рде)ред TXN.set_priv())
рд╕рдорд╛рд░реЛрд╣ред рдпрджрд┐ рдХреЛрдИ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рд╢реВрдиреНрдп рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

рд░рд┐рдЯрд░реНрди
рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдЕрдкрд╛рд░рджрд░реНрд╢реА рдбреЗрдЯрд╛, рдпрд╛ рдпрджрд┐ рдХреБрдЫ рднреА рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ рддреЛ рд╢реВрдиреНрдпред

TXN.set_priv(рдЯреАрдПрдХреНрд╕рдПрди, рдбреЗрдЯрд╛)
рд╡рд░реНрддрдорд╛рди HAProxy рд▓реЗрдирджреЗрди рдореЗрдВ рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВред рдпрд╣ рдХреНрд░рд┐рдпрд╛ рдкреБрд░рд╛рдиреЗ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреА рд╣реИ
рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ред

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

┬╖ рддрд┐рдерд┐ (рдЕрдкрд╛рд░рджрд░реНрд╢реА)-- рд╡рд╣ рдбреЗрдЯрд╛ рдЬреЛ рд▓реЗрдирджреЗрди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИред

TXN.set_var (TXN, рд╡рд░, рдореВрд▓реНрдп)
рдПрдХ Lua рдкреНрд░рдХрд╛рд░ рдХреЛ HAProxy рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ ред

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

┬╖ рдерд╛ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) - HAProxy рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реЗрд░рд┐рдПрдмрд▓ рдирд╛рдо
рд╡рд╛рдХреНрдп - рд╡рд┐рдиреНрдпрд╛рд╕ред

┬╖ рдореВрд▓реНрдп (рдЕрдкрд╛рд░рджрд░реНрд╢реА) -- рд╡рд╣ рдбреЗрдЯрд╛ рдЬреЛ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред

TXN.get_var(TXN, рд╡рд░)
рд▓реБрдЖ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрдирд╡рд░реНрдЯрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

┬╖ рдерд╛ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) - HAProxy рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реЗрд░рд┐рдПрдмрд▓ рдирд╛рдо
рд╡рд╛рдХреНрдп - рд╡рд┐рдиреНрдпрд╛рд╕ред

TXN.get_headers(txn)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╣реЗрдбрд░ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

рд░рд┐рдЯрд░реНрди
рд╢реАрд░реНрд╖рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛.

TXN.рд╣реЛ рдЧрдпрд╛(txn)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд▓реЗрдирджреЗрди рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕рддреНрд░ рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рдЧрдВрднреАрд░ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдпрд╛ рдЙрд╕рдХреЗ рдмрд╛рдж рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХреБрдЫ рдбреЗрдЯрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд▓реМрдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг: рдПрдХ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ)ред

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

TXN.set_loglevel(txn, рдЫрд╛рдВрдЯрдиреЗ рдХрд╛ рд╕реНрддрд░)
рд╡рд░реНрддрдорд╛рди рдЕрдиреБрд░реЛрдз рдХреЗ рд▓реЙрдЧ рд╕реНрддрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред "рд▓реЙрдЧрд▓реЗрд╡рд▓" рдПрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
0 рдФрд░ 7 рдХреЗ рдмреАрдЪ рдкреВрд░реНрдгрд╛рдВрдХ.

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

┬╖ рд▓реЙрдЧ рд╕реНрддрд░ (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдЖрд╡рд╢реНрдпрдХ рд▓реЙрдЧ рд╕реНрддрд░. рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рджреЗрдЦ рдореБрдЦреНрдпред

TXN.set_tos (рдЯреАрдПрдХреНрд╕рдПрди, tos)
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рднреЗрдЬреЗ рдЧрдП рдкреИрдХреЗрдЯ рдХреЗ рдЯреАрдУрдПрд╕ рдпрд╛ рдбреАрдПрд╕рд╕реАрдкреА рдлрд╝реАрд▓реНрдб рдорд╛рди рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ "tos" рдореЗрдВ рдореВрд▓реНрдп рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

┬╖ tos (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдирдпрд╛ рдЯреАрдУрдПрд╕ рдУрдПрд╕ рдбреАрдПрд╕рд╕реАрдкреАред

рдЯреАрдПрдХреНрд╕рдПрди.рд╕реЗрдЯ_рдорд╛рд░реНрдХ(рдЯреАрдПрдХреНрд╕рдПрди, рдирд┐рд╢рд╛рди)
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рднреЗрдЬреЗ рдЧрдП рд╕рднреА рдкреИрдХреЗрдЯреЛрдВ рдкрд░ рдиреЗрдЯрдлрд┐рд▓реНрдЯрд░ рдорд╛рд░реНрдХ рдХреЛ рдореВрд▓реНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЙрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ "рдорд╛рд░реНрдХ" рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬреЛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред

рддрд░реНрдХ

┬╖ TXN (рдХреНрд▓рд╛рд╕_txn) -- рдХреНрд▓рд╛рд╕ txn рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИред

┬╖ рдирд┐рд╢рд╛рди (рдкреВрд░реНрдгрд╛рдВрдХ)--рдЪрд┐рд╣реНрди рдорд╛рди.

рдХрдХреНрд╖рд╛ рд╕реЙрдХреЗрдЯ()
рдпрд╣ рд╡рд░реНрдЧ рд▓реБрдЖ рд╕реЙрдХреЗрдЯ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЗрд╡рд▓ 'рдЧреНрд░рд╛рд╣рдХ'
рдлрд╝рдВрдХреНрд╢рди рдЙрдкрд▓рдмреНрдз рд╣реИрдВ. рд▓реБрдЖ рд╕реЙрдХреЗрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ:

http://w3.impa.br/~diego/software/luasocket/tcp.html

рд╕реЙрдХреЗрдЯ.рдмрдВрдж рдХрд░реЗрдВ(рд╕реЙрдХреЗрдЯ)
рдПрдХ рдЯреАрд╕реАрдкреА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЖрдВрддрд░рд┐рдХ рд╕реЙрдХреЗрдЯ рдмрдВрдж рд╣реИ рдФрд░ рд╕реНрдерд╛рдиреАрдп рд╣реИ
рдЬрд┐рд╕ рдкрддреЗ рдкрд░ рд╡рд╕реНрддреБ рдмрдВрдзреА рдереА рдЙрд╕реЗ рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд╣реАрдВ
рдЖрдЧреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди (рдХреНрд▓реЛрдЬ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдХреА рдХреЙрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ
рдмрдВрдж рд╕реЙрдХреЗрдЯ.

рддрд░реНрдХ

┬╖ рд╕реЙрдХреЗрдЯ (рдХреНрд▓рд╛рд╕_рд╕реЙрдХреЗрдЯ) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЙрдХреЗрдЯ рд╣реИред

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

рд╕реЙрдХреЗрдЯ.рдХрдиреЗрдХреНрдЯ(рд╕реЙрдХреЗрдЯ, рдкрддрд╛[, рдкрддреНрддрди])
рд╕реЙрдХреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рджреВрд░рд╕реНрде рд╣реЛрд╕реНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ред

рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдзрд┐ рд╢реВрдиреНрдп рд▓реМрдЯрд╛рддреА рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рддреНрд░реБрдЯрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрддреА рд╣реИред
рд╕рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдзрд┐ 1 рд▓реМрдЯрд╛рддреА рд╣реИред

рддрд░реНрдХ

┬╖ рд╕реЙрдХреЗрдЯ (рдХреНрд▓рд╛рд╕_рд╕реЙрдХреЗрдЯ) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЙрдХреЗрдЯ рд╣реИред

┬╖ рдкрддрд╛ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдПрдХ рдЖрдИрдкреА рдкрддрд╛ рдпрд╛ рд╣реЛрд╕реНрдЯ рдирд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджреЗрдЦреЗрдВ
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред

┬╖ рдмрдВрджрд░рдЧрд╛рд╣ (рдкреВрд░реНрдгрд╛рдВрдХ) -- [1..64K] рд╢реНрд░реЗрдгреА рдореЗрдВ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рд░рд┐рдЯрд░реНрди
1 рдпрд╛ рд╢реВрдиреНрдп.

рдПрдХ рдкрддрд╛ рдлрд╝реАрд▓реНрдб рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯ() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдЯреАрд╕реАрдкреА рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдзрд╛рд░рд╛ред рд╕рд┐рдВрдкрд▓рдЖрдИрдкреАрд╡реА4 рдпрд╛ рдЖрдИрдкреАрд╡реА6 рдПрдбреНрд░реЗрд╕ рд╡рд╛рд▓рд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИ
рдореВрд▓рддрдГ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкреНрд░рд╛рд░реВрдк. рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ.

рд╕реНрд╡реАрдХреГрдд рдЕрдиреНрдп рдкреНрд░рд╛рд░реВрдк "/рд╕реЙрдХреЗрдЯ/рдкрде" рдЬреИрд╕реЗ рд╕реЙрдХреЗрдЯ рдкрде рд╣реИрдВ, рдпрд╣ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдПрдХ рд╕реЙрдХреЗрдЯ рдХреЗ рд▓рд┐рдП. рдЕрдореВрд░реНрдд рдирд╛рдорд╕реНрдерд╛рди рдЙрдкрд╕рд░реНрдЧ "abns@", рдФрд░ рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ
рдПрдХ рдлрд╛рдЗрд▓рдПрд╕реНрдХреНрд░рд┐рдпреЛрдЯреНрд░ рдХреЛ рдЙрдкрд╕рд░реНрдЧ "fd@" рдХреЗ рд╕рд╛рде рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрдкрд╕рд░реНрдЧ "ipv4@", "ipv6@"
рдФрд░ "unix@" рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдкреЛрд░реНрдЯ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕
"127.0.0.1:1234" рдорд╛рдиреНрдп рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреИрд░рд╛рдореАрдЯрд░ рдмрдВрджрд░рдЧрд╛рд╣ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рд╕реЙрдХреЗрдЯ.рдХрдиреЗрдХреНрдЯ_рдПрд╕рдПрд╕рдПрд▓(рд╕реЙрдХреЗрдЯ, рдкрддрд╛, рдкреЛрд░реНрдЯ)
рдлрд╝рдВрдХреНрд╢рди рд╕реЙрдХреЗрдЯ рд╕реЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░: рдХрдиреЗрдХреНрдЯ, рд▓реЗрдХрд┐рди рдПрд╕рдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ рд╕реЙрдХреЗрдЯ (рдХреНрд▓рд╛рд╕_рд╕реЙрдХреЗрдЯ) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЙрдХреЗрдЯ рд╣реИред

рд░рд┐рдЯрд░реНрди
1 рдпрд╛ рд╢реВрдиреНрдп.

рд╕реЙрдХреЗрдЯ.getpeername(рд╕реЙрдХреЗрдЯ)
рдХрд┐рд╕реА рдХрдиреЗрдХреНрдЯреЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рджреВрд░рд╕реНрде рдкрдХреНрд╖ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рд╕рд╣рдХрд░реНрдореА рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж рдкреЛрд░реНрдЯ рдирдВрдмрд░ рджреЗрддрд╛ рд╣реИ
рд╕рд╣рдХрд░реНрдореА рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ. рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдзрд┐ рд╢реВрдиреНрдп рд▓реМрдЯрд╛рддреА рд╣реИред

рддрд░реНрдХ

┬╖ рд╕реЙрдХреЗрдЯ (рдХреНрд▓рд╛рд╕_рд╕реЙрдХреЗрдЯ) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЙрдХреЗрдЯ рд╣реИред

рд░рд┐рдЯрд░реНрди
рд╕рд░реНрд╡рд░ рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд▓реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧред

рд╕реЙрдХреЗрдЯ.рдЧреЗрдЯрд╕реЙрдХрдирд╛рдо(рд╕реЙрдХреЗрдЯ)
рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдерд╛рдиреАрдп рдкрддреЗ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рд╡рд┐рдзрд┐ рд╕реНрдерд╛рдиреАрдп рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддреА рд╣реИред рдореЗрдВ
рддреНрд░реБрдЯрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╡рд┐рдзрд┐ рд╢реВрдиреНрдп рд▓реМрдЯрд╛рддреА рд╣реИред

рддрд░реНрдХ

┬╖ рд╕реЙрдХреЗрдЯ (рдХреНрд▓рд╛рд╕_рд╕реЙрдХреЗрдЯ) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЙрдХреЗрдЯ рд╣реИред

рд░рд┐рдЯрд░реНрди
рдХреНрд▓рд╛рдЗрдВрдЯ рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд▓реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧред

рд╕реЙрдХреЗрдЯ.рдкреНрд░рд╛рдкреНрдд(рд╕реЙрдХреЗрдЯ[, рдирдореВрдирд╛[, рдЙрдкрд╕рд░реНрдЧ]])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░реАрдб рдкреИрдЯрд░реНрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИред рдкреИрдЯрд░реНрдиреНрд╕
рд▓реБрдЖ рдлрд╝рд╛рдЗрд▓ I/O рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ, рдФрд░ рд╕рднреА рдХреЗ рдмреАрдЪ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЕрдВрддрд░
рдкреИрдЯрд░реНрди рдирдЧрдгреНрдп рд╣реИ.

рддрд░реНрдХ

┬╖ рд╕реЙрдХреЗрдЯ (рдХреНрд▓рд╛рд╕_рд╕реЙрдХреЗрдЯ) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЙрдХреЗрдЯ рд╣реИред

┬╖ рдкреИрдЯрд░реНрди (рд╕реНрдЯреНрд░рд┐рдВрдЧ|рдкреВрд░реНрдгрд╛рдВрдХ) -- рд╡рд░реНрдгрди рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред

┬╖ рдЙрдкрд╕рд░реНрдЧ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) - рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛ рд▓реМрдЯрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдЙрдкрд╕рд░реНрдЧ рд╣реЛрдЧреАред

рд░рд┐рдЯрд░реНрди
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд┐рд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдпрд╛ рд╢реВрдиреНрдп рд╣реИред

рдкреИрдЯрд░реНрди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

┬╖

`*рдП`: рдкрдврд╝рддрд╛ рд╕реЗ la рд╕реЙрдХреЗрдЯ рдЬрдм рддрдХ la рд╕рдВрдмрдВрдз is рдмрдиреНрдж рд╣реИред рдирд╣реАрдВ
рдЕрдВрдд-рдкрдВрдХреНрддрд┐ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;

┬╖

`*рдПрд▓`: рдкрдврд╝рддрд╛ a line of рдЯреЗрдХреНрд╕реНрдЯ рд╕реЗ la рд╕реЙрдХреЗрдЯред RSI line is рд╕рдорд╛рдкреНрдд by a
рдПрд▓рдПрдл рд╡рд░реНрдг (рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ 10), рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд╕реАрдЖрд░ рд╡рд░реНрдг (рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ 13) рд╣реЛрддрд╛ рд╣реИред
рд╕реАрдЖрд░ рдФрд░ рдПрд▓рдПрдл рд╡рд░реНрдг рд▓реМрдЯрд╛рдИ рдЧрдИ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ,
рд╕рднреА рд╕реАрдЖрд░ рд╡рд░реНрдгреЛрдВ рдХреЛ рдкреИрдЯрд░реНрди рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрдЯрд░реНрди рд╣реИ.

┬╖

рд╕рдВрдЦреНрдпрд╛: рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ la рддрд░реАрдХрд╛ рд╕реЗрд╡рд╛ рдореЗрд░реЗ рдкрдврд╝рдирд╛ a рд╡рд┐рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ of рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ la
рд╕реЙрдХреЗрдЯ. рдЙрдкрд╕рд░реНрдЧ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕реЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рд╣реИ
рд╡рд╛рдкрд╕реА рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рднреА рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХрд╛ред

┬╖ рдЦрд╛рд▓реА: рдпрджрд┐ рдкреИрдЯрд░реНрди рдЦрд╛рд▓реА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдХрд▓реНрдк рд╣реИ *l.

рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рд╡рд┐рдзрд┐ рдкреНрд░рд╛рдкреНрдд рдкреИрдЯрд░реНрди рд▓реМрдЯрд╛ рджреЗрддреА рд╣реИред рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ,
рд╡рд┐рдзрд┐ рд╢реВрдиреНрдп рд▓реМрдЯрд╛рддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ 'рдмрдВрдж' рд╣реЛ рд╕рдХрддреА рд╣реИ
рдпрджрд┐ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдкреВрд░рд╛ рд╣реЛрдиреЗ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ 'рдЯрд╛рдЗрдордЖрдЙрдЯ'ред рд╕рд╛рде рд╣реА, рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рдж
рд╕рдВрджреЗрд╢, рдлрд╝рдВрдХреНрд╢рди рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХрд╛ рдЖрдВрд╢рд┐рдХ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ: рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдорд▓реНрдЯреАрдкрд▓ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рдерд╛
рдкреИрдЯрд░реНрди (рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрднреА рдирд╣реАрдВ рджреЗрдЦрд╛) рдФрд░ рдЕрдм рдпрд╣ рдирд╣реАрдВ рд╣реИред
рдЖрдВрд╢рд┐рдХ рдкрд░рд┐рдгрд╛рдо рд╕рдлрд▓ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддрд░рд╣ рд╣реА рд▓реМрдЯрд╛рдП рдЬрд╛рддреЗ рдереЗред рдпрд╣
рдЕрдВрддрд┐рдо рд╕реБрд╡рд┐рдзрд╛ рдиреЗ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдХрд┐ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреНрд░реБрдЯрд┐ рдкрд░ рд╢реВрдиреНрдп рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░
рдЗрд╕реЗ рднреА рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛.

рд╕реЙрдХреЗрдЯ.рд╕реЗрдВрдб(рд╕реЙрдХреЗрдЯ, рдбреЗрдЯрд╛[, рд╢реБрд░реВ рдХрд░рдирд╛[, рдЕрдВрдд]])
рдХреНрд▓рд╛рдЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рднреЗрдЬрддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ рд╕реЙрдХреЗрдЯ (рдХреНрд▓рд╛рд╕_рд╕реЙрдХреЗрдЯ) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЙрдХреЗрдЯ рд╣реИред

┬╖ рддрд┐рдерд┐ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдЬреЛ рдбреЗрдЯрд╛ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛.

┬╖ рдкреНрд░рд╛рд░рдВрдн (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдбреЗрдЯрд╛ рдХреЗ рдмрдлрд╝рд░ рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рд╕реНрдерд┐рддрд┐ рдЬреЛ рд╣реЛрдЧреА
рднреЗрдЬрд╛ рдЧрдпрд╛ред

┬╖ рд╕рдорд╛рдкреНрдд (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдбреЗрдЯрд╛ рдХреЗ рдмрдлрд╝рд░ рдореЗрдВ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдЬреЛ рд╣реЛрдЧреА
рднреЗрдЬ рджрд┐рдпрд╛ред

рд░рд┐рдЯрд░реНрди
рдирд┐рдЪреЗ рджреЗрдЦреЛред

рдбреЗрдЯрд╛ рднреЗрдЬрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ. рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ i рдФрд░ j рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕реЗ рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЪрдпрди рдХреЛ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ.рд╕рдм рд▓реБрдЖ рдлрд╝рдВрдХреНрд╢рдиред

рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рд╡рд┐рдзрд┐ [рдкреНрд░рд╛рд░рдВрдн, рдЕрдВрдд] рдХреЗ рднреАрддрд░ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдЯ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд▓реМрдЯрд╛рддреА рд╣реИ
рд╡рд╣ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ. рдзреНрдпрд╛рди рджреЗрдВ, рдпрджрд┐ рдкреНрд░рд╛рд░рдВрдн 1 рдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╣реИ
рднреЗрдЬреЗ рдЧрдП рдмрд╛рдЗрдЯреНрд╕ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛. рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдзрд┐ рд╢реВрдиреНрдп рд▓реМрдЯрд╛рддреА рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж
рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢, рдЙрд╕рдХреЗ рдмрд╛рдж [рдкреНрд░рд╛рд░рдВрдн, рдЕрдВрдд] рдХреЗ рднреАрддрд░ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдЯ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ
рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕рдХреЗ рдмрд╛рдж рдмрд╛рдЗрдЯ рд╕реЗ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВред рддреНрд░реБрдЯрд┐
рдпрджрд┐ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рд╕реЗ рдкрд╣рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддреЛ рд╕рдВрджреЗрд╢ 'рдмрдВрдж' рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ 'рдЯрд╛рдЗрдордЖрдЙрдЯ' рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ
рдСрдкрд░реЗрд╢рдиред

рдиреЛрдЯ: рдЖрдЙрдЯрдкреБрдЯ рдмрдлрд╝рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЫреЛрдЯреЗ рддрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ
рдЙрдиреНрд╣реЗрдВ рд▓реБрдЖ рдореЗрдВ ('..' рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде) рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдХреЙрд▓ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рднреЗрдЬреЗрдВ
рд╡рд┐рдзрд┐ рдХреЛ рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдирд╛ред

рд╕реЙрдХреЗрдЯ.рд╕реЗрдЯрдСрдкреНрд╢рди(рд╕реЙрдХреЗрдЯ, рд╡рд┐рдХрд▓реНрдк[, рдХреАрдордд])
рдХреЗрд╡рд▓ рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдпрд╣ рдХреИрд▓ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ред

рд╕реЙрдХреЗрдЯ.рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ(рд╕реЙрдХреЗрдЯ, рдХреАрдордд[, рддрд░реАрдХрд╛])
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд╛рди рдмрджрд▓рддрд╛ рд╣реИред рд╕рднреА I/O рдкрд░рд┐рдЪрд╛рд▓рди рдЕрд╡рд░реБрджреНрдз рд╣реЛ рд░рд╣реЗ рд╣реИрдВ. рд╡рд╣
рд╣реИ, рднреЗрдЬрдиреЗ, рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдкрд░ рдХреЛрдИ рднреА рдХреЙрд▓ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рдХреЗ рд▓рд┐рдП рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рдПрдЧреА,
рдЬрдм рддрдХ рдСрдкрд░реЗрд╢рди рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛. рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рд╡рд┐рдзрд┐ рд░рд╛рд╢рд┐ рдкрд░ рдПрдХ рд╕реАрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ
I/O рд╡рд┐рдзрд┐рдпрд╛рдБ рдХрд┐рддрдиреЗ рд╕рдордп рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдЬрдм рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИ, рддреЛ рдкреНрд░рднрд╛рд╡рд┐рдд
рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣рд╛рд░ рдорд╛рди рд▓реЗрддреА рд╣реИрдВ рдФрд░ рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред

рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд╕рдордп рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рд╕реЗрдХрдВрдб рдореЗрдВ рдорд╛рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЯрд╛рдЗрдордЖрдЙрдЯ рдореЛрдб рдмреЙрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реИрдВ, рдПрдХрдорд╛рддреНрд░ рдирд┐рдкрдЯрд╛рди рдпреЛрдЧреНрдп рдЯрд╛рдЗрдордЖрдЙрдЯ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рд╣реИ
рдЖрдВрддрд░рд┐рдХ рдмрдлрд╝рд░ рднреЗрдЬрдиреЗ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордпред

рддрд░реНрдХ

┬╖ рд╕реЙрдХреЗрдЯ (рдХреНрд▓рд╛рд╕_рд╕реЙрдХреЗрдЯ) -- рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЙрдХреЗрдЯ рд╣реИред

┬╖ рдореВрд▓реНрдп (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд╛рди.

рдХрдХреНрд╖рд╛ рдирдХреНрд╢рд╛()
рдпрд╣ рд╡рд░реНрдЧ HAProxy рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рдХреБрдЫ рд▓реБрдХрдЕрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдШреЛрд╖рд┐рдд рдорд╛рдирдЪрд┐рддреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
HAProxy рдкреНрд░рдмрдВрдзрди рд╕реЙрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рдирдЯрд╛рдЗрдо рдХреЗ рджреМрд░рд╛рди рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ = "рдпреВрдПрд╕рдП"

- рдорд╛рдирдЪрд┐рддреНрд░ рдмрдирд╛рдПрдВ рдФрд░ рд▓реЛрдб рдХрд░реЗрдВ
рдЬрд┐рдпреЛ = рдореИрдк.рдиреНрдпреВ("рдЬрд┐рдпреЛ.рдореИрдк", рдореИрдк.рдЖрдИрдкреА);

- рдирдпрд╛ рдлрд╝реЗрдЪ рдмрдирд╛рдПрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рджреЗрд╢ рд▓реМрдЯрд╛рдП
core.register_fetches("рджреЗрд╢", рдлрд╝рдВрдХреНрд╢рди(txn)
рд╕реНрдерд╛рдиреАрдп рд╕реНрд░реЛрдд;
рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд╛рди;

src = txn.f:fhdr('x-forwarded-for');
рдпрджрд┐ (src == рд╢реВрдиреНрдп) рддреЛ
src = txn.f:src()
рдпрджрд┐ (src == рд╢реВрдиреНрдп) рддреЛ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд╛рдкрд╕реА;
рд╕рдорд╛рдкреНрдд
рд╕рдорд╛рдкреНрдд

-- рд▓реБрдХрдЕрдк рдХрд░реЗрдВ
рд╕реНрдерд╛рди = рднреВ:рд▓реБрдХрдЕрдк(src);

рдпрджрд┐ (loc == рд╢реВрдиреНрдп) рддреЛ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд╛рдкрд╕реА;
рд╕рдорд╛рдкреНрдд

рд╡рд╛рдкрд╕реА рд╕реНрдерд╛рди;
рдЕрдВрдд);

рдорд╛рдирдЪрд┐рддреНрд░.int
HAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди.txt рдлрд╝рд╛рдЗрд▓ рджреЗрдЦреЗрдВ, рдЕрдзреНрдпрд╛рдп "ACL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдирдореВрдиреЗ рд▓рд╛рдирд╛"
рдЗрд╕ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╡рд┐рдзрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдЕрдзреНрдпрд╛рдп "рдПрд╕реАрдПрд▓ рдореВрд▓ рдмрд╛рддреЗрдВ"ред

рдорд╛рдирдЪрд┐рддреНрд░.рдЖрдИрдкреА HAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди.txt рдлрд╝рд╛рдЗрд▓ рджреЗрдЦреЗрдВ, рдЕрдзреНрдпрд╛рдп "ACL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдирдореВрдиреЗ рд▓рд╛рдирд╛"
рдЗрд╕ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╡рд┐рдзрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдЕрдзреНрдпрд╛рдп "рдПрд╕реАрдПрд▓ рдореВрд▓ рдмрд╛рддреЗрдВ"ред

рдорд╛рдирдЪрд┐рддреНрд░.str
HAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди.txt рдлрд╝рд╛рдЗрд▓ рджреЗрдЦреЗрдВ, рдЕрдзреНрдпрд╛рдп "ACL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдирдореВрдиреЗ рд▓рд╛рдирд╛"
рдЗрд╕ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╡рд┐рдзрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдЕрдзреНрдпрд╛рдп "рдПрд╕реАрдПрд▓ рдореВрд▓ рдмрд╛рддреЗрдВ"ред

рдирдХреНрд╢рд╛.рднреАрдЦ
HAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди.txt рдлрд╝рд╛рдЗрд▓ рджреЗрдЦреЗрдВ, рдЕрдзреНрдпрд╛рдп "ACL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдирдореВрдиреЗ рд▓рд╛рдирд╛"
рдЗрд╕ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╡рд┐рдзрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдЕрдзреНрдпрд╛рдп "рдПрд╕реАрдПрд▓ рдореВрд▓ рдмрд╛рддреЗрдВ"ред

рдорд╛рдирдЪрд┐рддреНрд░.рдЙрдк
HAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди.txt рдлрд╝рд╛рдЗрд▓ рджреЗрдЦреЗрдВ, рдЕрдзреНрдпрд╛рдп "ACL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдирдореВрдиреЗ рд▓рд╛рдирд╛"
рдЗрд╕ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╡рд┐рдзрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдЕрдзреНрдпрд╛рдп "рдПрд╕реАрдПрд▓ рдореВрд▓ рдмрд╛рддреЗрдВ"ред

рдирдХреНрд╢рд╛.рдбреАрдЖрдИрдЖрд░
HAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди.txt рдлрд╝рд╛рдЗрд▓ рджреЗрдЦреЗрдВ, рдЕрдзреНрдпрд╛рдп "ACL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдирдореВрдиреЗ рд▓рд╛рдирд╛"
рдЗрд╕ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╡рд┐рдзрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдЕрдзреНрдпрд╛рдп "рдПрд╕реАрдПрд▓ рдореВрд▓ рдмрд╛рддреЗрдВ"ред

рдореИрдк.рдбреЛрдо
HAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди.txt рдлрд╝рд╛рдЗрд▓ рджреЗрдЦреЗрдВ, рдЕрдзреНрдпрд╛рдп "ACL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдирдореВрдиреЗ рд▓рд╛рдирд╛"
рдЗрд╕ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╡рд┐рдзрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдЕрдзреНрдпрд╛рдп "рдПрд╕реАрдПрд▓ рдореВрд▓ рдмрд╛рддреЗрдВ"ред

рдорд╛рдирдЪрд┐рддреНрд░ рдЕрдВрдд
HAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди.txt рдлрд╝рд╛рдЗрд▓ рджреЗрдЦреЗрдВ, рдЕрдзреНрдпрд╛рдп "ACL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдирдореВрдиреЗ рд▓рд╛рдирд╛"
рдЗрд╕ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╡рд┐рдзрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдЕрдзреНрдпрд╛рдп "рдПрд╕реАрдПрд▓ рдореВрд▓ рдмрд╛рддреЗрдВ"ред

рдирдХреНрд╢рд╛.рд░реЗрдЧ
HAProxy рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди.txt рдлрд╝рд╛рдЗрд▓ рджреЗрдЦреЗрдВ, рдЕрдзреНрдпрд╛рдп "ACL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдирдореВрдиреЗ рд▓рд╛рдирд╛"
рдЗрд╕ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╡рд┐рдзрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдЕрдзреНрдпрд╛рдп "рдПрд╕реАрдПрд▓ рдореВрд▓ рдмрд╛рддреЗрдВ"ред

рдорд╛рдирдЪрд┐рддреНрд░.рдирдпрд╛(рдлрд╝рд╛рдЗрд▓, рддрд░реАрдХрд╛)
рдорд╛рдирдЪрд┐рддреНрд░ рдмрдирд╛рдПрдВ рдФрд░ рд▓реЛрдб рдХрд░реЗрдВ.

рддрд░реНрдХ

┬╖ рдкрдЯреНрдЯрд┐рдХрд╛ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдХреНрдпрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИред

┬╖ рддрд░реАрдХрд╛ (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдорд╛рдирдЪрд┐рддреНрд░ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╡рд┐рдзрд┐ рд╣реИред рдЧреБрдг рджреЗрдЦреЗрдВ
рдорд╛рдирдЪрд┐рддреНрд░ рд╡рд░реНрдЧ рдХрд╛.

рд░рд┐рдЯрд░реНрди
рдПрдХ рдХреНрд▓рд╛рд╕ рдореИрдк рдСрдмреНрдЬреЗрдХреНрдЯред

рджреЗрдЦ рдорд╛рдирдЪрд┐рддреНрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ.

рдорд╛рдирдЪрд┐рддреНрд░.рд▓реБрдХрдЕрдк(рдорд╛рдирдЪрд┐рддреНрд░, рдПрд╕рдЯреАрдЖрд░)
рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рд▓реБрдХрдЕрдк рдХрд░реЗрдВ.

рддрд░реНрдХ

┬╖ рдирдХреНрд╢рд╛ (рдХреНрд▓рд╛рд╕_рдореИрдк) -- рдХреНрд▓рд╛рд╕ рдореИрдк рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред

┬╖ str (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдХреНрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд░рд┐рдЯрд░реНрди
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд┐рд╕рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рд╣реЛ рдпрд╛ рдпрджрд┐ рдХреЛрдИ рдорд┐рд▓рд╛рди рди рд╣реЛ рддреЛ рд╢реВрдиреНрдпред

Map.slookup(рдорд╛рдирдЪрд┐рддреНрд░, рдПрд╕рдЯреАрдЖрд░)
рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рд▓реБрдХрдЕрдк рдХрд░реЗрдВ.

рддрд░реНрдХ

┬╖ рдирдХреНрд╢рд╛ (рдХреНрд▓рд╛рд╕_рдореИрдк) -- рдХреНрд▓рд╛рд╕ рдореИрдк рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред

┬╖ str (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рдХреНрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд░рд┐рдЯрд░реНрди
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд┐рд╕рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рд╣реЛ рдпрд╛ рдпрджрд┐ рдХреЛрдИ рдорд┐рд▓рд╛рди рди рд╣реЛ рддреЛ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧред

рдХрдХреНрд╖рд╛ AppletHTTP()
рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдПрдкреНрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП 'http' рдореЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред http рдПрдкреНрд▓реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рд╣реЛрдВ рдХреЛрд░.рд░рдЬрд┐рд╕реНрдЯрд░_рд╕реЗрд╡рд╛() рд╕рдорд╛рд░реЛрд╣ред рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
HAProxy рдХреЗ рдкреАрдЫреЗ рдПрдХ рд╕рд░реНрд╡рд░ рдХреА рддрд░рд╣ http рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ред

рдпрд╣ рдПрдХ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдирдореВрдирд╛ рдХреЛрдб рд╣реИ:

core.register_service("рд╣реИрд▓реЛ-рд╡рд░реНрд▓реНрдб", "http", рдлрд╝рдВрдХреНрд╢рди(рдПрдкреНрд▓реЗрдЯ)
рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ = "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!"
рдПрдкреНрд▓реЗрдЯ:set_status(200)
рдПрдкреНрд▓реЗрдЯ: add_header ("рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ", рд╕реНрдЯреНрд░рд┐рдВрдЧ.рд▓реЗрди (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛))
рдПрдкреНрд▓реЗрдЯ: add_header ("рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░", "рдкрд╛рда/рд╕рд╛рджрд╛")
рдПрдкреНрд▓реЗрдЯ:start_response()
рдПрдкреНрд▓реЗрдЯ:рднреЗрдЬреЗрдВ(рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛)
рд╕рдорд╛рдкреНрдд)

AppletHTTP.c

рд░рд┐рдЯрд░реНрди
A рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрдХреНрд╖рд╛

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред

AppletHTTP.sc

рд░рд┐рдЯрд░реНрди
A рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрдХреНрд╖рд╛

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рд╡рд╕реНрддреБ рдХреЗ рдХрд╛рд░реНрдп
рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

AppletHTTP.f

рд░рд┐рдЯрд░реНрди
A рдлрд╝реЗрдЪ рдХрдХреНрд╖рд╛

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдПрдХ Fetches рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдкреНрд▓реЗрдЯ рдирд┐рд╖реНрдкрд╛рджрди
рд╕реНрдерд╛рди рд╡реИрдз HAProxy рдХреЛрд░ HTTP рд▓реЗрдирджреЗрди рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдирдореВрдирд╛
HTTP рдкрд░ рдирд┐рд░реНрднрд░ рдорд╛рдиреЛрдВ (рдПрдЪрдбреАрдЖрд░, рдкрде,...) рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред

AppletHTTP.sf

рд░рд┐рдЯрд░реНрди
A рдлрд╝реЗрдЪ рдХрдХреНрд╖рд╛

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдПрдХ Fetches рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рд╡рд╕реНрддреБ рдХреЗ рдХрд╛рд░реНрдп
рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдкреНрд▓реЗрдЯ рдирд┐рд╖реНрдкрд╛рджрди рд╕реНрдерд╛рди рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛
рд╡реИрдз HAProxy рдХреЛрд░ HTTP рд▓реЗрдирджреЗрди, рдЗрд╕рд▓рд┐рдП HTTP рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдирдореВрдирд╛ рдлрд╝реЗрдХреНрдЪреЗрд╕
рдЖрд╢реНрд░рд┐рдд рдорд╛рди (рдПрдЪрдбреАрдЖрд░, рдкрде, ...) рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред

AppletHTTP.рд╡рд┐рдзрд┐

рд░рд┐рдЯрд░реНрди
рд╕реНрдЯреНрд░рд┐рдВрдЧ

рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рдзрд┐ HTTP рд╡рд┐рдзрд┐ рд╡рд╛рд▓реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддреА рд╣реИред

AppletHTTP.рд╕рдВрд╕реНрдХрд░рдг

рд░рд┐рдЯрд░реНрди
рд╕реНрдЯреНрд░рд┐рдВрдЧ

рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрд╕реНрдХрд░рдг, HTTP рдЕрдиреБрд░реЛрдз рд╕рдВрд╕реНрдХрд░рдг рд╡рд╛рд▓реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

AppletHTTP.рдкрде

рд░рд┐рдЯрд░реНрди
рд╕реНрдЯреНрд░рд┐рдВрдЧ

рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрде HTTP рдЕрдиреБрд░реЛрдз рдкрде рд╡рд╛рд▓реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

AppletHTTP.qs

рд░рд┐рдЯрд░реНрди
рд╕реНрдЯреНрд░рд┐рдВрдЧ

рд╡рд┐рд╢реЗрд╖рддрд╛ qs HTTP рдЕрдиреБрд░реЛрдз рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд╛рд▓реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддреА рд╣реИред

AppletHTTP.рд▓рдВрдмрд╛рдИ

рд░рд┐рдЯрд░реНрди
рдкреВрд░реНрдгрд╛рдВрдХ

рд╡рд┐рд╢реЗрд╖рддрд╛ рд▓рдВрдмрд╛рдИ HTTP рдмреЙрдбреА рд▓рдВрдмрд╛рдИ рд╡рд╛рд▓рд╛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд▓реМрдЯрд╛рддреА рд╣реИред

AppletHTTP.рд╣реЗрдбрд░

рд░рд┐рдЯрд░реНрди
рд╕рд░рдгреА

рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЗрдбрд░ HTTP рд╣реЗрдбрд░ рдпреБрдХреНрдд рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╣реЗрдбрд░
рдирд╛рдо рд╣рдореЗрд╢рд╛ рдЫреЛрдЯреЗ рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЬреИрд╕реЗ рдХрд┐ рд╣реЗрдбрд░ рдирд╛рдо рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХ рдмрд╛рд░, рдорд╛рди рдХреЛ рдкрд╣рд▓реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ 0 рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд░рдгреА
рдпрд╣ рдлрд╝реЙрд░реНрдо рд╣реИ:

AppletHTTP.headers[' '][ ] = " "

AppletHTTP.headers["host"][0] = "www.test.com"
AppletHTTP.headers["рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ"][0] = "рдСрдбрд┐рдпреЛ/рдмреЗрд╕рд┐рдХ q=1"
AppletHTTP.headers["рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ"][1] = "рдСрдбрд┐рдпреЛ/*, q=0.2"
AppletHTTP.headers["рд╕реНрд╡реАрдХрд╛рд░"][2] = "*/*, q=0.1"

AppletHTTP.рд╣реЗрдбрд░
рдЗрд╕рдореЗрдВ рд╕рднреА рдЕрдиреБрд░реЛрдз рд╢реАрд░реНрд╖рд▓реЗрдЦреЛрдВ рд╡рд╛рд▓реА рдПрдХ рд╕рд░рдгреА рд╢рд╛рдорд┐рд▓ рд╣реИред

AppletHTTP.set_status(рдПрдкреНрд▓реЗрдЯ, рдХреЛрдб)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП HTTP рд╕реНрдерд┐рддрд┐ рдХреЛрдб рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЕрдиреБрдордд рдХреЛрдб рд╕реЗ рд╣реИрдВ
100 рдХреЛ 599.

рддрд░реНрдХ

┬╖ рдПрдкреНрд▓реЗрдЯ (class_AppleHTTP) -- рдПрдХ AppletHTTP рдХрдХреНрд╖рд╛

┬╖ рдХреЛрдб (рдкреВрд░реНрдгрд╛рдВрдХ)--рд╕реНрдЯреЗрдЯрд╕ рдХреЛрдб рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд▓реМрдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред

AppletHTTP.add_header(рдПрдкреНрд▓реЗрдЯ, рдирд╛рдо, рдореВрд▓реНрдп)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╣реЗрдбрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдП рдЧрдП рд╣реЗрдбрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ.
рд╡рд┐рд╢реЗрд╖ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХрдВрдЯреЗрдВрдЯ рдХреА рд▓рдореНрдмрд╛рдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд▓рдВрдмрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдпрд╣
рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рдг-рдПрдиреНрдХреЛрдбрд┐рдВрдЧ: рдардЧрд╛ рд╣реБрдЖ рд╕реЗрдЯ рд╣реИ, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╕рднреА рд▓реЗрдЦрди
AppletHTTP:рднреЗрдЬреЗрдВ() рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдмрди рдЬрд╛рдУ.

рддрд░реНрдХ

┬╖ рдПрдкреНрд▓реЗрдЯ (class_AppleHTTP) -- рдПрдХ AppletHTTP рдХрдХреНрд╖рд╛

┬╖ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдирд╛рдо

┬╖ рдореВрд▓реНрдп (рд╕реНрдЯреНрд░рд┐рдВрдЧ) -- рд╣реЗрдбрд░ рдорд╛рди

AppletHTTP.start_response(рдПрдкреНрд▓реЗрдЯ)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди HTTP рдЗрдВрдЬрди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢реАрд░реНрд╖рд▓реЗрдЦ. рдЗрд╕ рдХреЙрд▓ рдХреЗ рдмрд╛рдж рд╣рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реЗрдбрд░ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ; рд╣рдо
рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ AppletHTTP:рднреЗрдЬреЗрдВ() рдХрд╛рд░реНрдп рдХрд░реЗрдВ рдпрджрд┐ AppletHTTP:start_response() рдирд╣реАрдВ рд╣реИ
рдмреБрд▓рд╛рдпрд╛ред

рддрд░реНрдХ

┬╖ рдПрдкреНрд▓реЗрдЯ (class_AppleHTTP) -- рдПрдХ AppletHTTP рдХрдХреНрд╖рд╛

AppletHTTP.getline(рдПрдкреНрд▓реЗрдЯ)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди http рдмреЙрдбреА рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рд╡рд╛рд▓реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдбреЗрдЯрд╛
рд▓реМрдЯрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо '\n' рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕реНрдЯреНрд░реАрдо рдЦрд╝рддреНрдо рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ.

рддрд░реНрдХ

┬╖ рдПрдкреНрд▓реЗрдЯ (class_AppleHTTP) -- рдПрдХ AppletHTTP рдХрдХреНрд╖рд╛

рд░рд┐рдЯрд░реНрди
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рд╣рдо рд╕реНрдЯреНрд░реАрдо рдХреЗ рдЕрдВрдд рддрдХ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИред

AppletHTTP.рдкреНрд░рд╛рдкреНрдд(рдПрдкреНрд▓реЗрдЯ[, рдЖрдХрд╛рд░])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░реАрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░ HTTP рдмреЙрдбреА рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИ рдЖрдХрд╛рд░ред рдЕрдЧрд░ рдЖрдХрд╛рд░ is
рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдкрд░, рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреНрд░реАрдо рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░
la рдЖрдХрд╛рд░ http рдмреЙрдбреА рд╕реЗ рдмрдбрд╝рд╛ рд╣реИ, рдпрд╣ рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ рдПрдкреНрд▓реЗрдЯ (class_AppleHTTP) -- рдПрдХ AppletHTTP рдХрдХреНрд╖рд╛

┬╖ рдЖрдХрд╛рд░ (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдЖрд╡рд╢реНрдпрдХ рдкрдврд╝рдиреЗ рдХрд╛ рдЖрдХрд╛рд░ред

рд░рд┐рдЯрд░реНрди
рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рдПрдВ, рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИред

AppletHTTP.send(рдПрдкреНрд▓реЗрдЯ, рд╕рдВрджреЗрд╢)
рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ msg http рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдкрд░.

рддрд░реНрдХ

┬╖ рдПрдкреНрд▓реЗрдЯ (class_AppleHTTP) -- рдПрдХ AppletHTTP рдХрдХреНрд╖рд╛

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ)--рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢.

рдХрдХреНрд╖рд╛ AppletTCP()
рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдПрдкреНрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП 'tcp' рдореЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЯреАрд╕реАрдкреА рдПрдкреНрд▓реЗрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рд╣реИ рдХреЛрд░.рд░рдЬрд┐рд╕реНрдЯрд░_рд╕реЗрд╡рд╛() рд╕рдорд╛рд░реЛрд╣ред рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
HAProxy рдХреЗ рдкреАрдЫреЗ рдПрдХ рд╕рд░реНрд╡рд░ рдХреА рддрд░рд╣ рдПрдХ рдЯреАрд╕реАрдкреА рд╕реНрдЯреНрд░реАрдоред

AppletTCP.c

рд░рд┐рдЯрд░реНрди
A рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрдХреНрд╖рд╛

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред

AppletTCP.sc

рд░рд┐рдЯрд░реНрди
A рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрдХреНрд╖рд╛

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рд╡рд╕реНрддреБ рдХреЗ рдХрд╛рд░реНрдп
рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

AppletTCP.f

рд░рд┐рдЯрд░реНрди
A рдлрд╝реЗрдЪ рдХрдХреНрд╖рд╛

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдПрдХ Fetches рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред

AppletTCP.sf

рд░рд┐рдЯрд░реНрди
A рдлрд╝реЗрдЪ рдХрдХреНрд╖рд╛

рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдПрдХ Fetches рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред

AppletTCP.getline(рдПрдкреНрд▓реЗрдЯ)
рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рд╡рд╛рд▓реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдбреЗрдЯрд╛
рд▓реМрдЯрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо '\n' рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕реНрдЯреНрд░реАрдо рдЦрд╝рддреНрдо рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ.

рддрд░реНрдХ

┬╖ рдПрдкреНрд▓реЗрдЯ (рдХреНрд▓рд╛рд╕_рдПрдкреНрд▓реЗрдЯрдЯреАрд╕реАрдкреА) -- рдПрдХ AppletTCP рдХрдХреНрд╖рд╛

рд░рд┐рдЯрд░реНрди
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рд╣рдо рд╕реНрдЯреНрд░реАрдо рдХреЗ рдЕрдВрдд рддрдХ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИред

AppletTCP.рдкреНрд░рд╛рдкреНрдд(рдПрдкреНрд▓реЗрдЯ[, рдЖрдХрд╛рд░])
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░реАрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЯреАрд╕реАрдкреА рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИ рдЖрдХрд╛рд░ред рдЕрдЧрд░ рдЖрдХрд╛рд░
рдЧрд╛рдпрдм рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреНрд░реАрдо рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рддрд░реНрдХ

┬╖ рдПрдкреНрд▓реЗрдЯ (рдХреНрд▓рд╛рд╕_рдПрдкреНрд▓реЗрдЯрдЯреАрд╕реАрдкреА) -- рдПрдХ AppletTCP рдХрдХреНрд╖рд╛

┬╖ рдЖрдХрд╛рд░ (рдкреВрд░реНрдгрд╛рдВрдХ) -- рдЖрд╡рд╢реНрдпрдХ рдкрдврд╝рдиреЗ рдХрд╛ рдЖрдХрд╛рд░ред

рд░рд┐рдЯрд░реНрди
рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рдПрдВ, рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИред

AppletTCP.рднреЗрдЬреЗрдВ(рдПрдкреНрд▓реЗрдЯрдПрдордПрд╕рдЬреА)
рд╕реНрдЯреНрд░реАрдо рдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ.

рддрд░реНрдХ

┬╖ рдПрдкреНрд▓реЗрдЯ (рдХреНрд▓рд╛рд╕_рдПрдкреНрд▓реЗрдЯрдЯреАрд╕реАрдкреА) -- рдПрдХ AppletTCP рдХрдХреНрд╖рд╛

┬╖ msg (рд╕реНрдЯреНрд░рд┐рдВрдЧ)--рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢.

рдмрд╣реБрдд рд╕рд╛рд░реА рдЙрдкрдпреЛрдЧреА рд▓реБрдЖ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ:

┬╖ https://lua-toolbox.com/

рд░реЗрдбрд┐рд╕ рдкрд╣реБрдБрдЪ:

┬╖ https://github.com/nrk/redis-lua

рдпрд╣ HAProxy рдХреЗ рд╕рд╛рде Redis рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓
рдпрджрд┐ рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдХреЛрдИ рднреА рдлрд╝рдВрдХреНрд╢рди рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

- рд░реЗрдбрд┐рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЛрдб рдХрд░реЗрдВ
рд╕реНрдерд╛рдиреАрдп рд░реЗрдбрд┐рд╕ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ("рд░реЗрдбрд┐рд╕");

рдлрд╝рдВрдХреНрд╢рди do_something(txn)

- рдирдпрд╛ рдЯреАрд╕реАрдкреА рд╕реЙрдХреЗрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
рд╕реНрдерд╛рдиреАрдп рдЯреАрд╕реАрдкреА = рдХреЛрд░.рдЯреАрд╕реАрдкреА();
рдЯреАрд╕реАрдкреА:рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ; (1)
рдЯреАрд╕реАрдкреА: рдХрдиреЗрдХреНрдЯ ("127.0.0.1", 6379);

- рдЗрд╕ рдирдП рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рд░реЗрдбрд┐рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рд╕реНрдерд╛рдиреАрдп рдЧреНрд░рд╛рд╣рдХ = redis.connect({socket=tcp});
рдЧреНрд░рд╛рд╣рдХ:рдкрд┐рдВрдЧ();

рд╕рдорд╛рдкреНрдд

рдУрдкрдирдПрд╕рдПрд╕рдПрд▓:

┬╖ http://mkottman.github.io/luacrypto/index.html

┬╖ https://github.com/brunoos/luasec/wiki

onworks.net рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд▓рд╛рдЗрди haproxy-lua рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдлреНрд░реА рд╕рд░реНрд╡рд░ рдФрд░ рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди

рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд╛рдЗрдиреЗрдХреНрд╕ рдПрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

  • 1
    рдмрдбрд╝рд╛ рдШреВрдБрдЯ
    рдмрдбрд╝рд╛ рдШреВрдБрдЯ
    SWIG рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреВрд▓ рд╣реИ
    рдЬреЛ C рдФрд░ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
    рд╕реА ++ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рдПрдХ рдХрд┐рд╕реНрдо рдХреЗ рд╕рд╛рде
    рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ред рдПрд╕рдбрдмреНрд▓реНрдпреВрдЖрдИрдЬреА рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
    рдХреЛ рдЕрд▓рдЧ...
    рдПрд╕рдбрдмреНрд▓реНрдпреВрдЖрдИрдЬреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  • 2
    WooCommerce Nextjs рд░рд┐рдПрдХреНрдЯ рдереАрдо
    WooCommerce Nextjs рд░рд┐рдПрдХреНрдЯ рдереАрдо
    рд░рд┐рдПрдХреНрдЯ WooCommerce рдереАрдо, рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛
    рдЕрдЧрд▓рд╛ рдЬреЗрдПрд╕, рд╡реЗрдмрдкреИрдХ, рдмреИрдмреЗрд▓, рдиреЛрдб, рдФрд░
    рдПрдХреНрд╕рдкреНрд░реЗрд╕, рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдФрд░ рдЕрдкреЛрд▓реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░
    рдЧреНрд░рд╛рд╣рдХред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ WooCommerce рд╕реНрдЯреЛрд░ (
    рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдЙрддреНрдкрд╛рдж...
    WooCommerce Nextjs рд░рд┐рдПрдХреНрдЯ рдереАрдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  • 3
    Archlabs_repo
    Archlabs_repo
    рдЖрд░реНрдХрд▓реИрдмреНрд╕ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рд░реЗрдкреЛ рдпрд╣ рдПрдХ рд╣реИ
    рдЖрд╡реЗрджрди рдЬреЛ рдкреНрд░рд╛рдкреНрдд рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
    рд╕реЗ
    https://sourceforge.net/projects/archlabs-repo/.
    рдЗрд╕реЗ OnWorks рдореЗрдВ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ...
    рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  • 4
    рдЬреЗрдлрд┐рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛
    рдЬреЗрдлрд┐рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛
    рд╣рд▓рдХреА рд╣рд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рдирдИ рдкреАрдврд╝реА рд╣реИ
    рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рдЖрд░рдЯреАрдУрдПрд╕)ред
    рдХрдИ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
    рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ред рдпрд╣ рдПрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ
    рдЫреЛрдЯреЗ-рдкрджрдЪрд┐рд╣реНрди рдХрд░реНрдиреЗрд▓...
    рдЬрд╝реЗрдлрд╛рдпрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  • 5
    рд╕реНрдХреИрди
    рд╕реНрдХреИрди
    рд╕реНрдХреИрди рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдг рд╣реИ
    рдХрд╛ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИ
    рдХреНрд▓рд╛рд╕рд┐рдХ "рдореЗрдХ" рдмрд┐рд▓реНрдб рдЯреВрд▓ рдЬреЛ
    рд╣рдо рд╕рдм рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдХреИрди рд╣реИ
    рдПрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ ...
    рд╕реНрдХреИрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  • 6
    рдкреАрдПрд╕рдИрдЗрдВрдЯ
    рдкреАрдПрд╕рдИрдЗрдВрдЯ
    PSeInt рдПрдХ рдЫрджреНрдо рдХреЛрдб рджреБрднрд╛рд╖рд┐рдпрд╛ рд╣реИ
    рд╕реНрдкреИрдирд┐рд╢ рднрд╛рд╖реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЫрд╛рддреНрд░ред
    рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдПрдХ рдЙрдкрдХрд░рдг рдмрдирдирд╛ рд╣реИ
    рдмреБрдирд┐рдпрд╛рджреА рд╕реАрдЦрдирд╛ рдФрд░ рд╕рдордЭрдирд╛
    рдЕрд╡рдзрд╛рд░рдгрд╛...
    рдкреАрдПрд╕рдИрдЗрдВрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  • рдЕрдзрд┐рдХ "

рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб

  • 1
    7z
    7z
    7z - рдЙрдЪреНрдЪрддрдо рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛
    рд╕рдВрдХреНрд╖рд┐рдкреНрддреАрдХрд░рдг рдЕрдиреБрдкрд╛рдд ...
    7z рдЪрд▓рд╛рдПрдВ
  • 2
    7za
    7za
    7za - рдЙрдЪреНрдЪрддрдо рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛
    рд╕рдВрдХреНрд╖рд┐рдкреНрддреАрдХрд░рдг рдЕрдиреБрдкрд╛рдд ...
    7za рдЪрд▓рд╛рдПрдВ
  • 3
    рдбрд░рд╛рд╡рдирд╛
    рдбрд░рд╛рд╡рдирд╛
    рдХреНрд░реАрдкреА - рдПрдХ рднреМрдЧреЛрд▓рд┐рдХ рд╕реНрдерд╛рди рдХреА рдЬрд╛рдирдХрд╛рд░реА
    рдПрдЧреНрд░реАрдЧреЗрдЯрд░ рд╡рд┐рд╡рд░рдг: рдЦреМрдлрдирд╛рдХ рдПрдХ рд╣реИ
    рдЖрд╡реЗрджрди рдЬреЛ рдЖрдкрдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
    рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА
    рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ ...
    рдЦреМрдлрдирд╛рдХ рджреМрдбрд╝реЛ
  • 4
    рдХреНрд░рд┐рдХреЗрдЯ-рд╕рдВрдХрд▓рди
    рдХреНрд░рд┐рдХреЗрдЯ-рд╕рдВрдХрд▓рди
    рдХреНрд░рд┐рдХреЗрдЯ - рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо
    рд╕рдордп-рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдФрд░ рдкреНрд░рджрд░реНрд╢рди
    рдЖрдВрдХрдбрд╝реЗ ...
    рдХреНрд░рд┐рдХреЗрдЯ-рд╕рдВрдХрд▓рди рдЪрд▓рд╛рдПрдБ
  • 5
    рдЬреА-рд░реИрдк-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
    рдЬреА-рд░реИрдк-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
    рдЬреА-рд░реИрдк-рд╡рд┐рдиреНрдпрд╛рд╕ - рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ
    рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА
    рдЬреА-рд░реИрдк рдХреА...
    рдЬреА-рд░реИрдк-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪрд▓рд╛рдПрдБ
  • 6
    g.accessрдШрд╛рд╕
    g.accessрдШрд╛рд╕
    g.access - рддрдХ рдкрд╣реБрдБрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ
    рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдорд╛рдирдЪрд┐рддреНрд░рд╕реЗрдЯ
    рдкреНрд░рдгрд╛рд▓реАред рдпрджрд┐ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ
    рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ред рдХреАрд╡рд░реНрдб: рд╕рд╛рдорд╛рдиреНрдп, рдорд╛рдирдЪрд┐рддреНрд░
    рдкреНрд░рдмрдВрдзрди, рдкреА...
    рдЬреА.рдПрдХреНрд╕реЗрд╕рдЧреНрд░рд╛рд╕ рдЪрд▓рд╛рдПрдВ
  • рдЕрдзрд┐рдХ "

Ad