рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдЖрдЬ рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐
рдУрд╕реНрдЯреНрд░реЛрд╡реЛрдХреЙрд╡ рд╣реЛрдЯрд▓ рдЖрд░рдХреНрд╖рдг рд╕реЗрд╡рд╛ рдЯреАрдо рдиреЗ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд░ рд╡рд┐рдХрд╛рд╕ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдХрд╛рд░реНрдп рд╣рдорд╛рд░реЗ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реВрдЪрдирд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИред рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐
рдУрдбреНрд░реЛрд╡реЙрдХ рдореЗрдВ рджреЗрд╡рдУрдкреНрд╕ рдЯреАрдо рд▓реАрдбред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдорд╛рдЗрдХреНрд░реЛрд╕реИрд╕ рд╕рд░реНрд╡рд┐рд╕ рдЫреЛрдЯрд╛ рдерд╛ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛ рдерд╛:
- рд╕реНрдерд╛рдиреАрдп рд╕реЗрд╡рд╛ рд╕реЗ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ;
- рдПрдХ рд╕рд╛рдереА рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ;
- рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░реЗрдВ;
- рдХреНрд╡реЗрд░реА рд╕реЗрд╡рд╛ рдкрд░ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдордп рдмреАрдд рдЧрдпрд╛, рд╕реЗрд╡рд╛ рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЙрдирдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдмрдврд╝рддреА рдЧрдИред
рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╕реЗрд╡рд╛ рдмрдврд╝реА, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрднрд░рдиреЗ рд▓рдЧреАрдВред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рджрд╛рддрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдЖрдЧреЗ рд░рдЦрддреЗ рд╣реИрдВ: рдХреЛрдИ рдЕрдзрд┐рдХрддрдо рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реАрдорд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреЛрдИ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕рдлреЗрдж рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдкрдбрд╝рд╛:
- рдХрдИ рдирд┐рд╢реНрдЪрд┐рдд рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддреЗ рд╣реЛрдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕рдлреЗрдж рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХреЗрдВ,
- рд╕рднреА рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХрд╛ рдПрдХ рдПрдХрд▓ рдкреВрд▓ рд╣реИ рддрд╛рдХрд┐ рдЬрдм рд╣рдорд╛рд░реЗ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рд╕реЗ рдХрдо рдмрдиреА рд░рд╣реЗ,
- SSL рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рд░рдЦреЗрдВ, рдЬрд┐рд╕рд╕реЗ рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдкрд░ рднрд╛рд░ рдХрдо рд╣реЛред
рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдФрд░ рддреБрд░рдВрдд рд╕реЛрдЪрд╛ рдХрд┐ рдХреНрдпрд╛ рдЪреБрдирдирд╛ рд╣реИ: рдирдЧрдиреЗрдХреНрд╕ рдпрд╛ рд╣рд╛рдкреНрд░реЛрд╕реАред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреЗрдВрдбреБрд▓рдо рдиреЗрдЧреНрдиреЗрдХреНрд╕ рдХреА рдУрд░ рдШреВрдо рдЧрдпрд╛, рдХреНрдпреЛрдВрдХрд┐ HTTP / HTTPS I рд╕реЗ рдЬреБрдбрд╝реА рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЗрд╕рдХреА рдорджрдж рд╕реЗ рд╣рд▓ рд╣реБрдИрдВ рдФрд░ рд╣рдореЗрд╢рд╛ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдереАрдВред
рдпрд╣ рдпреЛрдЬрдирд╛ рд╕рд░рд▓ рдереА: Nginx рдкрд░ рд╣рдорд╛рд░реЗ рдирдП рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдлреЙрд░реНрдо рдХреЗ рдПрдХ рдбреЛрдореЗрди рдХреЗ рд╕рд╛рде
<partner_tag>.domain.local
, Nginx рдореЗрдВ рдПрдХ
map
рдерд╛ рдЬрд╣рд╛рдВ
<partner_tag>
рд╕рд╛рдЭреЗрджрд╛рд░ рдХреЗ рдкрддреЗ рдХреЗ рдЕрдиреБрд░реВрдк рдерд╛ред рдПрдХ рдкрддрд╛
map
рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░
proxy_pass
рдХреЛ рдЗрд╕ рдкрддреЗ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг
map
рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдбреЛрдореЗрди рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реВрдЪреА рд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ:
рдФрд░ рдпрд╣рд╛рдБ "
snippet.d/upstreams_map
" рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
тАЬoneтАЭ тАЬhttp://one.domain.netтАЭ; тАЬtwoтАЭ тАЬhttps://two.domain.orgтАЭ;
рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рдкрд╛рд╕
server{}
:
server { listen 80; location / { proxy_http_version 1.1; proxy_pass $upstream_address$request_uri; proxy_set_header Host $upstream_host; proxy_set_header X-Forwarded-For ""; proxy_set_header X-Forwarded-Port ""; proxy_set_header X-Forwarded-Proto ""; } }
рд╕рдм рдХреБрдЫ рд╢рд╛рдВрдд рд╣реИ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрджрд┐ рдПрдХ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рдкреНрд░реЙрдХреНрд╕реА_рдкрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЕрдиреБрд░реЛрдз рд╕реАрдзреЗ рдПрдХ рд╡рд╛рдВрдЫрд┐рдд рдкрддреЗ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, HTTP / 1.0 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдмрд┐рдирд╛
keepalive
рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╣рдо
proxy_http_version 1.1
, рддреЛ рднреА рдЕрдкрд╕реНрдЯреНрд░реАрдо (
рдкреНрд░реЙрдХреНрд╕реА_http_version ) рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред
рдХреНрдпрд╛ рдХрд░реЗрдВ? рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рд╕рднреА рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд▓рд╛рдирд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕рд░реНрд╡рд░ рдХреЛ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдХрд╛ рдкрддрд╛ рд╣реЛрдЧрд╛, рдФрд░
map
"tag" "upstream_name"
ред
рдпреЛрдЬрдирд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░
map
рдЬреЛрдбрд╝реЗрдВ:
рдФрд░ рдЯреИрдЧ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде
upstreams
рдмрдирд╛рдПрдВ:
upstream one { keepalive 64; server one.domain.com; } upstream two { keepalive 64; server two.domain.net; }
рд╕рд░реНрд╡рд░ рдХреЛ рдпреЛрдЬрдирд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдФрд░ рдкрддреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреЗ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
server { listen 80; location / { proxy_http_version 1.1; proxy_pass $upstream_scheme$upstream_prefix$request_uri; proxy_set_header Host $upstream_host; proxy_set_header X-Forwarded-For ""; proxy_set_header X-Forwarded-Port ""; proxy_set_header X-Forwarded-Proto ""; } }
рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ред рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдореЗрдВ
proxy_http_version 1.1
рдбрд╛рдпрд░реЗрдХреНрдЯрд┐рд╡ рдХреЛ рдЬреЛрдбрд╝реЗрдВ,
proxy_http_version 1.1
рд╕реЗрдЯ рдХрд░реЗрдВ, - рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рд╣реИ, рдФрд░ рд╕рдм рдХреБрдЫ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рдмрд╛рд░, рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓реЗрдЦ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЪрд╛рдп рдкреА рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рдирд╣реАрдВ?
рджрд░рдЕрд╕рд▓, рдЬрдм рд╣рдо рдЪрд╛рдп рдкреА рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рд╣реА рдбреЛрдореЗрди (рд╣рд╛рдп, рдЕрдореЗрдЬрд╝реЕрди) рдХреЗ рддрд╣рдд рдЖрдИрдкреА рдкрддреЗ рдпрд╛ рдкрддреЗ рдХреЗ рд╕рдореВрд╣ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣рдорд╛рд░реА рдЪрд╛рдп рдкрд╛рд░реНрдЯреА рдХреА рдКрдВрдЪрд╛рдИ рдкрд░ рдЧрд┐рд░ рд╕рдХрддрд╛ рд╣реИред
рдЦреИрд░, рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдиреЗрдЧреНрдиреЗрдХреНрд╕ рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╣реИ: рдкреБрдирдГ рд▓реЛрдб рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рдКрдкрд░ рдХреЗ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдирдП рдкрддреЗ рддрдХ
upstream
рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрди рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рд╕рдорд╛рдзрд╛рди рднреАред рд╣рд░ 5 рдорд┐рдирдЯ рдореЗрдВ
cron reload nginx
рдореЗрдВ рдлреЗрдВрдХ рджреЗрдВ рдФрд░ рдЪрд╛рдп рдкреАрдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВред
рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдореБрдЭреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рдирд┐рд░реНрдгрдп рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╣рд╛рдкреНрд░реЛрд╕реА рдХреА рдУрд░ рдкреВрдЫрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред
рд╣рд╛рдкреНрд░реЛрд╕реА рдореЗрдВ
dns resolvers
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдФрд░
dns cache
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рд╛рдкреНрд░реЛрд╕реА
dns cache
рдЕрдкрдбреЗрдЯ рдХрд░ рджреЗрдЧрд╛ рдпрджрд┐ рдЗрд╕рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИрдВ, рдФрд░ рдЕрдЧрд░ рд╡реЗ рдмрджрд▓ рдЧрдП рд╣реИрдВ рддреЛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреЗ рдкрддреЗ рдХреЛ рдмрджрд▓ рджреЗрдВред
рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдЕрдм рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред
рдпрд╣рд╛рдБ Haproxy рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
frontend http bind *:80 http-request del-header X-Forwarded-For http-request del-header X-Forwarded-Port http-request del-header X-Forwarded-Proto capture request header Host len 32 capture request header Referer len 128 capture request header User-Agent len 128 acl host_present hdr(host) -m len gt 0 use_backend %[req.hdr(host),lower,field(1,'.')] if host_present default_backend default resolvers dns hold valid 1s timeout retry 100ms nameserver dns1 1.1.1.1:53 backend one http-request set-header Host one.domain.com server one--one.domain.com one.domain.com:80 resolvers dns check backend two http-request set-header Host two.domain.net server two--two.domain.net two.domain.net:443 resolvers dns check ssl verify none check-sni two.domain.net sni str(two.domain.net)
рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдмрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдореБрдЭреЗ рд╣рд╛рдкреНрд░реЛрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рд╡рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рд╡рд░рдг рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╣реИред рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЯреЗрдХреНрд╕реНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЖрд▓рд╕реНрдп рдкреНрд░рдЧрддрд┐ рдХрд╛ рдЗрдВрдЬрди рд╣реИ: рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рдмрд╛рдд рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЬрдирд░реЗрдЯрд░ рд▓рд┐рдЦреЗрдВред
рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирдЧреНрдиреЗрдХреНрд╕ рд╕реЗ рдПрдХ рдкреНрд░рд╛рд░реВрдк рдерд╛
"tag" "upstream"
рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдиреЗ, рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдФрд░ рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╣рд╛рдЗрдкреНрд░реЛрдпреЛ рдмреИрдХрдПрдВрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
рдЕрдм рд╣рдо рд╕рднреА рдХреЛ nginx_map рдореЗрдВ рдПрдХ рдирдпрд╛ рд╣реЛрд╕реНрдЯ рдЬреЛрдбрд╝рдирд╛ рд╣реИ, рдЬрдирд░реЗрдЯрд░ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рддреИрдпрд╛рд░ рд╣реИрдкреНрд░реЛрдХреНрд╕реА рдХреЙрдиреНрдлрд┐рдЧрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рдЖрдЬ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдпрд╣ рд▓реЗрдЦ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рд╣реИ рдФрд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЪреБрдирдиреЗ рдФрд░ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдЗрд╕рдХреЗ рдПрдХреАрдХрд░рдг рдХреА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред
рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╣рд╛рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрдВ рдХреНрдпрд╛ рдиреБрдХрд╕рд╛рди рд╣реБрдП, рдЬреЛ рдХрд┐ рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдмрд┐рдд рд╣реБрдП, рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж, рджреЗрдЦрд┐рдпреЗ!