рдкрд░рд┐рдЪрдп
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, nginx рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреИрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмреИрдХрдПрдВрдб рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдорд╛рдВрдЧ рдкрд░ рдЗрд╕реЗ рдЬрд╛рд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рд░реНрд╡рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдмрдЪрдд рд╣реЛрдЧреАред рдРрд╕реЗ рдХреИрд╢реНрдб рдкреГрд╖реНрдареЛрдВ рдХреА рд╡рд╛рдкрд╕реА рдХреА рдЧрддрд┐ рдХрднреА-рдХрднреА рдЕрджреНрднреБрдд рд╣реЛрддреА рд╣реИ, рдРрд╕реА рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрднреА-рдХрднреА рдХрдИ рд╕рд╛рдЗрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджрдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдХреЗрд╡рд▓ рдПрдХ 1 рдкреЗрдЬ рдХреЛ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреГрд╖реНрда рдкрд░ рдХреИрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП js рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд▓реЗрдЯ рд░реЗрдВрдбрд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рдЬреЛ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕ рдкреНрд▓реЗрдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред
рдореИрдВрдиреЗ рдХрдИ рдмрд╛рд░ nginx рдкреГрд╖реНрдареЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рдХреБрдЫ рдЕрд╕рд╣рдЬ рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдпрд╛:
- рдЖрдк рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдЧрддрд┐рд╢реАрд▓ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╡рд╛рд▓реЗ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ?
- рдХреНрдпрд╛ рдореИрдВ рдХрдИ url рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдХреИрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ / рдПрд▓реНрдмрдо / *, рд▓реЗрдХрд┐рди рд╣рд░ рдмрд╛рд░ рд╕рд╛рдЗрдЯ рдХреЗ рдирдП рдЦрдВрдб рджрд┐рдЦрдиреЗ рдкрд░ nginx config рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рд╣реИ?
рдпрджрд┐ рдХреЛрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рд╕рдм рдХреБрдЫ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рд╣реЛрдХрд░, рдХрдИ nginx рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдПрдХ nontrivial рдХрд╛рд░реНрдп рдмрди рдЬрд╛рддрд╛ рд╣реИред
рдЦреБрдж рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХреНрд╕-рдПрдХреНрд╕реЗрд▓-рдПрдХреНрд╕рдкрд╛рдпрд░реНрд╕ рд╣реЗрдбрд░ рдФрд░ рдиреЗрдЧреНрдиреЗрдХреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред
рдХрд╛рд░реНрдп
рдореЗрд░реЗ рдкреГрд╖реНрда рдХреИрд╢рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛:
1. php рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХреЗ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдЪрд╛рд▓реВ рдпрд╛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
2. рдкреВрд░реНрдг url рджреНрд╡рд╛рд░рд╛ рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВред
3. рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреЗрдЬ рдпрд╛ рд╕рд╛рдЗрдЯ рдХреЗ рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдХреИрд╢ рд╕рдордп рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВред
4. nginx рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рд╕рдордп рдХреИрд╢ рд╕рдордп рдФрд░ рд╕рднреА рдХреИрд╢ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред
рдирд┐рд░реНрдгрдп
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, Fastcgi рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (php рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА, nginx рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)
рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрдИ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ:
1. рдиреЗрдЧрдиреЗрдХреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЬрд╝реЛрди рд╕реЗрдЯ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрди рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде "рд╕рд░реНрд╡рд░" рдЦрдВрдб рд╕реЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦреА рдЧрдИ рд╣реИред
fastcgi_cache_path /tmp/mycache levels=2 keys_zone=mycachename:5m inactive=2m max_size=1500m;
2. рд╕рд░реНрд╡рд░ рд╕реЗрдХреНрд╢рди рдореЗрдВ, рдкреЗрдЬ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕реЗрдЯ рдХрд░реЗрдВ:
location / { root $PROJECT_ROOT/data/ ; fastcgi_cache mycachename; fastcgi_cache_valid 200 301 302 304 30m; fastcgi_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri"; fastcgi_cache_use_stale error timeout invalid_header; fastcgi_pass_header "X-Accel-Expires"; fastcgi_pass 127.0.0.1:9900; fastcgi_index index.php; }
рдпрд╣рд╛рдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ:
fastcgi_cache - рдЬрд╝реЛрди рдХреЗ рдкреИрд░рд╛ 1 рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдо
fastcgi_cache_valid - рдХрд┐рд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╣рдо рдХреИрд╢рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ - рдХреИрд╢рд┐рдВрдЧ рд╕рдордп - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдХреИрд╢ рд╕рдордп рд╣реЛрдЧрд╛ред рдпрд╛рдиреА рд╣рдо 1 рд╕реЗрдХрдВрдб рд╕реЗ 30 рдорд┐рдирдЯ рддрдХ рдХреИрд╢ рд╕рдордп рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
fastcgi_cache_key - рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ
fastcgi_pass_header "рдПрдХреНрд╕-рдПрдХреНрд╕реЗрд▓-рдПрдХреНрд╕рдкрд╛рдпрд░" - рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рд╡реИрдХрд▓реНрдкрд┐рдХ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧреА - рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдордиреЗ рдкреГрд╖реНрда рдХреЛ рдХрд┐рддрдирд╛ рдЕрдВрдд рдореЗрдВ рдХреИрд╢реНрдб рдХрд┐рдпрд╛ рд╣реИред
3. php рдореЗрдВ рд╣реА, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреАрдЬреЗрдВ рдЬреЛрдбрд╝реЗрдВ:
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЗрдбрд░ рд╕реЗрдЯ рдХрд░реЗрдВ:
<?php header("X-Accel-Expires: 0");
рддрд╛рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдИ рдЙрддреНрддрд░ рдХреИрд╢ рди рд╣реЛред
рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ:
function flushResponse() { if (self::$cache_time) {
рдпрд╣рд╛рдВ рд╣рдо рдпрд╣ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдкреГрд╖реНрда рдХреЛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреБрдЫ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдпрд╛ рд╕рд╛рдЗрдЯ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ, рд╣рдореЗрдВ рд╕реЗрдХрдВрдб рдореЗрдВ рдкреЗрдЬ рдХреИрд╢ рд╕рдордп рдорд┐рд▓рддрд╛ рд╣реИ) рдФрд░ рдПрдХреНрд╕-рдПрдХреНрд╕реЗрд▓-рдПрдХреНрд╕рдкрд╛рдпрд░ рд╣реЗрдбрд░ рдХреЛ 1 рдмрд╛рд░ рд╕реЗрдЯ рдХрд░реЗрдВ, рдорд╛рди 0 рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рд╕реЗрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рджреЗрдВред
рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ?
рдЗрд╕ рдкреНрд░рдХрд╛рд░, nginx, рдЬрдм рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:
1. рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдзрд┐рдд рдкреГрд╖реНрда рдХреИрд╢ рдореЗрдВ рд╣реИ (рдХреИрд╢ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо fastcgi_cache_key рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)
2. рдпрджрд┐ рдпрд╣ рд╣реИ, рддреЛ рдпрд╣ php рдХреЛ рдХреЙрд▓ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рд╛рдордЧреНрд░реА рджреЗрддрд╛ рд╣реИ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред
3. рдПрдХ php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд╡рд╛рдм рдореЗрдВ X-Accel-Expires рд╣реИрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ 0 рд╣реИ, рддреЛ рдпрд╣ рдХреБрдЫ рднреА рдХреИрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рд╣реЗрдбрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рд╕рдордп 30 рдорд┐рдирдЯ рд╣реИ, рдЕрдВрддрд┐рдо рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ fastcgi_cache_valid рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЖрд╕рд╛рдиреА рд╕реЗ nginx рдХреЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ "рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛" рдерд╛ рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рджреВрд░ рдзрдХреЗрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреИрд╢ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ред
рдореИрдВрдиреЗ рдирдЧрдиреЗрдХреНрд╕ рдХреИрд╢рд┐рдВрдЧ рддрдВрддреНрд░ рдХреЗ рд╕рднреА рдЖрдХрд░реНрд╖рдг рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдкрд╣рд▓реЗ рд╣реА рдХрдИ рдмрд╛рд░ рдЪрд░реНрдЪрд╛ рд╣реЛ рдЪреБрдХреА рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рддрд░реНрдХ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдирдЧреАрди рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВред