рд╣рдо рдЕрдкрдиреЗ Nginx рдХреЛ рдХреБрдЫ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЕрд╕реЗрдВрдмрд▓ рдХрд░рддреЗ рд╣реИрдВ

рд╣рд╛рдп!
рдореЗрд░рд╛ рдирд╛рдо рд╕рд░реНрдЧреЗрдИ рд╣реИ, рдореИрдВ tinkoff.ru рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреА рдПрдкреАрдЖрдИ рдЯреАрдо рдореЗрдВ рдПрдХ рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЗрдВрдЬреАрдирд┐рдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬрд┐рдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмреИрд▓реЗрдВрд╕рд░ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╕рдордп рд╣рдорд╛рд░реА рдЯреАрдо рдХреЛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ nginx рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП. рдореИрдВ рдЖрдкрдХреЛ рдЙрд╕ рдЯреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрддрд╛рдКрдВрдЧрд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░ рдХрд╛рдмреВ рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред

Nginx рдПрдХ рдмрд╣реБрдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдФрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рд╣реИред рдЗрд╕рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ, рдпрд╣ рд╕рдВрдкреВрд░реНрдг рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИ. рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреИрд▓реЗрдВрд╕рд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ Nginx рдХреЗ рд╕рдВрд╕реНрдХрд░рдг (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, http/2 рдФрд░ GRPC рдкреНрд░реЙрдХреНрд╕реАрдЗрдВрдЧ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐), рдФрд░ рдЗрд╕рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд▓рдЧрд╛рддрд╛ рд╣реИред

рд╣рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдХреЗ рддрд╣рдд рдЪрд▓ рд░рд╣реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ рдбрд┐рдмреЗрдЯ- рдФрд░ рдЖрд░рдкреАрдПрдо-рдЖрдзрд╛рд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рд╣реИрдВред рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдо рдЕрдкрдиреЗ рдмреИрд▓реЗрдВрд╕рд░реНрд╕ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдВ рд╕рд╡рд╛рд▓ рддреБрд░рдВрдд рдЙрдарддрд╛ рд╣реИ: рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрдо рд╕рдВрд╕рд╛рдзрди рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реБрдП рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП? рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рднреА рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рд╣рдо рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдПрдХ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХреЗрдВ, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рдмреЗрдЯ/рдЖрд░рдкреАрдПрдо рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ:

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

рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдРрд╕реЗ рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдЬреЛ рдорд╛рдирд╡-рдкрдардиреАрдп рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдЧрд╛ рдФрд░ рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ Nginx рдкреИрдХреЗрдЬ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдЧрд╛ред

рдЬреАрдердм рдХреА рд╡рд┐рд╢рд╛рд▓рддрд╛ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдорд┐рд▓рдиреЗ рдкрд░, рд╣рдордиреЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЯреВрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ - nginx-рдмрд┐рд▓реНрдбрд░.

рдирд┐рд░реНрджрд┐рд╖реНрдЯреАрдХрд░рдг

рд╣рдорд╛рд░реЗ рдЯреВрд▓ рдореЗрдВ, рд╣рдо рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╡рд┐рд╡рд░рдг рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ Git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдРрд╕реА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЪреБрдирд╛ - yamlред рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдЙрджрд╛рд╣рд░рдг:

nginx_version: 1.14.1
output_package: deb
modules:
  - module:
      name: nginx-auth-ldap
      git_url: https://github.com/kvspb/nginx-auth-ldap.git
      git_branch: master
      dependencies:
        - libldap2-dev
  - module:
      name: ngx_http_substitutions_filter_module
      git_url: https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
  - module:
      name: headers-more-nginx-module
      web_url: https://github.com/openresty/headers-more-nginx-module/archive/v0.261.zip
  - module:
      name: nginx-module-vts
      git_url: https://github.com/vozlt/nginx-module-vts.git
      git_tag: v0.1.18
  - module:
      name: ngx_devel_kit
      git_url: https://github.com/simplresty/ngx_devel_kit.git
      git_tag: v0.3.0
  - module:
      name: ngx_cache_purge
      git_url: https://github.com/FRiCKLE/ngx_cache_purge.git
  - module:
      name: ngx_http_dyups_module
      git_url: https://github.com/yzprofile/ngx_http_dyups_module.git
  - module:
      name: nginx-brotli
      git_url: https://github.com/eustas/ngx_brotli.git
      git_tag: v0.1.2
  - module:
      name: nginx_upstream_check_module
      git_url: https://github.com/yaoweibin/nginx_upstream_check_module.git
  - module:
      name: njs
      git_url: https://github.com/nginx/njs.git
      git_tag: 0.2.5
      config_folder_path: nginx

рдпрд╣рд╛рдВ рд╣рдо рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде Nginx рд╕рдВрд╕реНрдХрд░рдг 1.14.2 рдХреЗ рд╕рд╛рде рдПрдХ рдбрд┐рдмреЗрдЯ рдкреИрдХреЗрдЬ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рд╡рд╛рд▓рд╛ рдЕрдиреБрднрд╛рдЧ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ. рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдХреБрдЫ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП nginx-auth-ldap рдХреЛ libldap2-dev рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред

рдкрд░реНрдпрд╛рд╡рд░рдг

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

рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ рдмрд┐рд▓реНрдбрд░ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

pip3 install -r requirements.txt
./main.py build -f [╨║╨╛╨╜╤Д╨╕╨│_╤Д╨░╨╣╨╗].yaml -r [╨╜╨╛╨╝╨╡╤А_╤А╨╡╨▓╨╕╨╖╨╕╨╕]

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

builder - INFO - Parse yaml file: example.config.yaml
builder - INFO - Download scripts for build deb package
builder - INFO - Downloading nginx src...
builder - INFO - --> http://nginx.org/download/nginx-1.14.1.tar.gz
builder - INFO - Downloading 3d-party modules...
builder - INFO - Module nginx-auth-ldap will download by branch
builder - INFO - -- Done: nginx-auth-ldap
builder - INFO - -- Done: ngx_http_substitutions_filter_module
builder - INFO - Module headers-more-nginx-module will downloading
builder - INFO - Module nginx-module-vts will download by tag
builder - INFO - -- Done: nginx-module-vts
builder - INFO - Module ngx_devel_kit will download by tag
builder - INFO - -- Done: ngx_devel_kit
builder - INFO - -- Done: ngx_cache_purge
builder - INFO - -- Done: ngx_http_dyups_module
builder - INFO - Downloading dependencies
builder - INFO - Building .deb package
builder - INFO - Running 'dh_make'...
builder - INFO - Running 'dpkg-buildpackage'...
dpkg-deb: building package 'nginx' in '../nginx_1.14.1-1_amd64.deb'.

рдЗрд╕рд▓рд┐рдП, рдХреЗрд╡рд▓ рдХреБрдЫ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдо рдкрд░реНрдпрд╛рд╡рд░рдг рдФрд░ рдЖрд╡рд╢реНрдпрдХ Nginx рдЕрд╕реЗрдВрдмрд▓реА рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдкреИрдХреЗрдЬ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рддреА рд╣реИред

рдПрдореНрдмреЗрдбрд┐рдВрдЧ

рд╣рдо рдЕрдкрдиреЗ рдЯреВрд▓ рдХреЛ рд╕реАрдЖрдИ/рд╕реАрдбреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рднреА рдПрдХреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЬ рдореМрдЬреВрдж рдХрдИ рд╕реАрдЖрдИ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИ рдЯреАрдорд╕рд┐рдЯреА рдпрд╛ рдЧрд┐рдЯрд▓реИрдм рд╕реАрдЖрдИ.

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

рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ yaml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ Ansible рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рд╣рдо рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рддреИрдирд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрднреА рддрдХ рдкреВрд░реА рдирд╣реАрдВ рд╣реБрдИ рд╣реИ. рд╣рдо рдЕрднреА рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

  • рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдЗрд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рднреА рд░рдЦрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рджреЛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рд╣рдЬрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдЗрд╕рдореЗрдВ рд╕рдВрдХрд▓рди рдлрд╝реНрд▓реИрдЧ (рдЕрдм рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЖрдВрддрд░рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ src/config.py рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ), рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкрде рдФрд░ рд▓реЙрдиреНрдЪ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
  • рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред
  • рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдПрдХ рдХрд╕реНрдЯрдо рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред github.com/nginx-modules/nginx_upstream_check_module рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)
  • рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдирд╛:
    • рдкреИрдХреЗрдЬ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ.
    • Nginx рдХреЗ рдкрд╛рд╕ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдФрд░ рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдлрд╝реНрд▓реИрдЧ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
    • рдЖрд╡рд╢реНрдпрдХ рдкрде, рдЦрд╛рддреЗ рдЗрддреНрдпрд╛рджрд┐ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдЖрдк рдЕрднреА рдЗрд╕ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕реБрдзрд╛рд░ рднреА рд╕реБрдЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ - github.com/TinkoffCreditSystems/Nginx-builder рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

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

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