
рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдЬрд┐рд╕ рдХрдВрдкрдиреА рдореЗрдВ рдореИрдВ рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдЙрд╕рдореЗрдВ рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╡реЗ nginx + Apache + mod_fastcgi рдпрд╛ mod_fcgid рдмрдВрдбрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдереЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЕрдкрд╛рдЪреЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдирдЧреНрдиреЗрдХреНрд╕ рдЦреБрдж FastCGI рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВрдиреЗ FCGI :: ProcManager рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдПрдХ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦрд╛ред рдЗрд╕рдиреЗ рд▓реЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЬреАрд╡рди рдХрд╛рд▓ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рд╛ред
рдмрд╛рдж рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ FCGI рдХреЗ рд▓реЗрдЦрдХ :: ProcManager рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд▓рдЪреАрд▓рд╛ рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
FCGI :: ProcManager :: рдбрд╛рдпрдирд╛рдорд┐рдХ рдореЙрдбреНрдпреВрд▓ FastCGI рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрд┐рдд рдЙрдиреНрдирдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдЭрд╛ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдВрджреЗрд╢ рдЪреИрдирд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдирдХреА рдмрд╛рддрдЪреАрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдиреНрдирдд рд╡рд┐рдХрд▓реНрдк рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ:
max_nproc - рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛;
min_nproc - рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛;
рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╕рдордп
delta_proc - "рдХрджрдо";
рдбреЗрд▓реНрдЯрд╛ - рд╕рдордп - рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдмреАрддрд╛ рд╣реБрдЖ рд╕рдордп, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдХрдо рднрд╛рд░ рдкрд░, рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧреАред рдЗрд╕ рддрд░рд╣ рдХреА рдХрдореА рдХреЗрд╡рд▓ рддрднреА рд╣реЛрддреА рд╣реИ рдЬрдм рдкреВрд░реА рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдПрдХ рд╕рд╛рде рдШрдЯрдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдирдИ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд▓реЛрдб рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдХрдореА рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
max_requests - рдПрдХ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ред рдЗрд╕реЗ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдмрдВрдзрдХ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдирдпрд╛ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрдирд╛рддрд╛ рд╣реИред
рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рд╕реАрдорд╛ рдХреЗ рдкрд░рд┐рдЪрдп рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореИрдВ FastCGI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рд░реНрдп рдЪрдХреНрд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рдВрдХреНрд╢рди
pm_loop рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, FastCGI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рд░реНрдп рдЪрдХреНрд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдХрд░ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдЪрдХреНрд░ рдХреЗ рдкреАрдЫреЗ рд╕реНрдерд┐рдд рд╕рднреА рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
$ proc_manager-> pm_manage ();
рдЬрдмрдХрд┐ ($ proc_manager-> pm_loop () && (рдореЗрд░рд╛ $ cgi = CGI :: Fast-> рдирдпрд╛ ())) {
$ proc_manager-> pm_pre_dispatch ();
# - рдпрд╣рд╛рдБ рдирд┐рд╡реЗрджрди рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВ ...
$ proc_manager-> pm_post_dispatch ();
};
# ... рдпрд╣рд╛рдВ рд╕рднреА рдЕрдВрддрд┐рдо рдЪрд░рдг рд╣реИрдВ ...
рдпрд╣ рдореЙрдбреНрдпреВрд▓ рд▓рдЧрднрдЧ рджреЛ рд╕рдкреНрддрд╛рд╣ рд╕реЗ рдкреНрд░реЛрдбрдХреНрд╢рди рд╕рд░реНрд╡рд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдмреЗрд╢рдХ, рд╢рдмреНрдж рдЫреЛрдЯрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрдбрд╝реЗ рд▓реЛрдб рдФрд░ рдЕрд╕рдлрд▓рддрд╛рдУрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рд╡рд╣ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореЙрдбреНрдпреВрд▓ CPAN рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ, рд╕рд▓рд╛рд╣ рдФрд░ рд╕реБрдзрд╛рд░ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдореИрдВ рдХрд╡реНрд╡рд╛рдЬрд╝ рд╣рдмреНрд░рд╛рдпреБрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЖрднрд╛рд░ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐, рдмрд╣реБрдд рд╣рдж рддрдХ, рдпрд╣ рдЙрдирдХрд╛
рд▓реЗрдЦ рдерд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ред