เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ Nginx เชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เช†เชฆเซ‡เชถเซ‹ เชธเชพเชฅเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเซ€เช เช›เซ€เช

เชนเซ‡เชฒเซ‹!
เชฎเชพเชฐเซเช‚ เชจเชพเชฎ เชธเซ‡เชฐเซเช—เซ‡เชˆ เช›เซ‡, เชนเซเช‚ tinkoff.ru เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเชจเซ€ API เชŸเซ€เชฎเชฎเชพเช‚ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชเชจเซเชœเชฟเชจเชฟเชฏเชฐ เชคเชฐเซ€เช•เซ‡ เช•เชพเชฎ เช•เชฐเซเช‚ เช›เซเช‚.

เช† เชฒเซ‡เช–เชฎเชพเช‚ เชนเซเช‚ เชคเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเซเชธ เชคเซˆเชฏเชพเชฐ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช…เชฎเชพเชฐเซ€ เชŸเซ€เชฎเชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชคเซ€ เชธเชฎเชธเซเชฏเชพเช“ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€เชถ Nginx เชตเชฟเชตเชฟเชง เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฎเชพเชŸเซ‡. เชนเซเช‚ เชคเชฎเชจเซ‡ เชคเซ‡ เชŸเซ‚เชฒ เชตเชฟเชถเซ‡ เชชเชฃ เช•เชนเซ€เชถ เชœเซ‡เชฃเซ‡ เชฎเชจเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพเชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ€.

Nginx เชเช• เชฎเชฒเซเชŸเชฟเชซเช‚เช•เซเชถเชจเชฒ เช…เชจเซ‡ เชธเช•เซเชฐเชฟเชฏ เชฐเซ€เชคเซ‡ เชตเชฟเช•เชพเชธเชถเซ€เชฒ เชชเซเชฐเซ‹เช•เซเชธเซ€ เชธเชฐเซเชตเชฐ เช›เซ‡. เชคเซ‡เชฎเชพเช‚ เชฎเซ‹เชŸเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เช›เซ‡, เช† เชธเช‚เชชเซ‚เชฐเซเชฃ เชฏเชพเชฆเซ€ เชจเชฅเซ€. เชฆเชฐเซ‡เช• เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเชจเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เช…เชจเซ‡ Nginx (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, http/2 เช…เชจเซ‡ grpc เชชเซเชฐเซ‹เช•เซเชธเซ€เช‚เช—เชจเซ€ เชนเชพเชœเชฐเซ€), เช…เชจเซ‡ เชคเซ‡เชจเชพ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชจเซ€ เชฐเชšเชจเชพ เชชเชฐ เชšเซ‹เช•เซเช•เชธ เช†เชตเชถเซเชฏเช•เชคเชพเช“ เชฒเชพเชฆเซ‡ เช›เซ‡.

เช…เชฎเซ‡ เชšเซ‹เช•เซเช•เชธ Linux เชตเชฟเชคเชฐเชฃ เชนเซ‡เช เชณ เชšเชพเชฒเชคเชพ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชจเชพ เชœเชฐเซ‚เชฐเซ€ เชธเซ‡เชŸ เชธเชพเชฅเซ‡เชจเซเช‚ เชจเชตเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ เชœเซ‹เชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช. เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช† deb- เช…เชจเซ‡ rpm-เช†เชงเชพเชฐเชฟเชค เชธเชฟเชธเซเชŸเชฎเซ‹ เช›เซ‡. เช† เชฒเซ‡เช–เชฎเชพเช‚ เช•เชจเซเชŸเซ‡เชจเชฐ เชธเชพเชฅเซ‡เชจเซ‹ เชตเชฟเช•เชฒเซเชช เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชจเชฅเซ€.

เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเซเชธเชจเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชเชกเชชเชฅเซ€ เชฌเชฆเชฒเชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช. เช…เชจเซ‡ เช…เชนเซ€เช‚ เชคเชฐเชค เชœ เชชเซเชฐเชถเซเชจ เชŠเชญเซ‹ เชฅเชพเชฏ เช›เซ‡: เชถเช•เซเชฏ เชคเซ‡เชŸเชฒเชพ เช“เช›เชพ เชธเช‚เชธเชพเชงเชจเซ‹ เช–เชฐเซเชšเซ€เชจเซ‡ เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเซเช‚? เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชธเซเชฏเซ‹เชœเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ เชตเชงเซ เชธเชพเชฐเซเช‚ เชฐเชนเซ‡เชถเซ‡ เชœเซ‡เชฅเซ€ เช…เชฎเซ‡ เช‡เชจเชชเซเชŸ เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ€ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชธเช‚เช–เซเชฏเชพเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ€ เชถเช•เซ€เช เช…เชจเซ‡ เช†เช‰เชŸเชชเซเชŸ เชชเชฐ เช‡เชšเซเช›เชฟเชค OS เชฎเชพเชŸเซ‡ deb/rpm เชชเซ‡เช•เซ‡เชœเชจเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เช†เชฐเซเชŸเชฟเชซเซ‡เช•เซเชŸ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ.

เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชธเช‚เช–เซเชฏเชพเชฌเช‚เชง เชธเชฎเชธเซเชฏเชพเช“ เช˜เชกเซ€ เชถเช•เชพเชฏ เช›เซ‡:

  • Nginx เชจเชพ เชจเชตเซ€เชจเชคเชฎ เชธเช‚เชธเซเช•เชฐเชฃ เชธเชพเชฅเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชชเซ‡เช•เซ‡เชœเซ‹ เชนเซ‹เชคเชพ เชจเชฅเซ€.
  • เชœเชฐเซ‚เชฐเซ€ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เชธเชพเชฅเซ‡ เช•เซ‹เชˆ เชชเซ‡เช•เซ‡เชœเซ‹ เชจเชฅเซ€.
  • เชชเซ‡เช•เซ‡เชœ เชœเชพเชคเซ‡ เช•เชฎเซเชชเชพเชˆเชฒ เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เชฌเชจเชพเชตเชตเซเช‚ เช เชธเชฎเชฏ เชฎเชพเช‚เช—เซ€ เชฒเซ‡เชคเซเช‚ เช…เชจเซ‡ เชเช•เชฆเชฎ เช•เช‚เชŸเชพเชณเชพเชœเชจเช• เช›เซ‡.
  • เช† เช…เชฅเชตเชพ เชคเซ‡ Nginx เชฆเชพเช–เชฒเชพเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡เชจเซเช‚ เช•เซ‹เชˆ เชตเชฐเซเชฃเชจ เชจเชฅเซ€.

เช† เชธเชฎเชธเซเชฏเชพเช“เชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡, เชเช• เชธเชพเชงเชจเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เชŠเชญเซ€ เชฅเชพเชฏ เช›เซ‡ เชœเซ‡ เชฎเชพเชจเชต-เชตเชพเช‚เชšเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเชพ เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชธเซเชชเซ‡เชธเชฟเชซเชฟเช•เซ‡เชถเชจเชจเซ‡ เช‡เชจเชชเซเชŸ เชคเชฐเซ€เช•เซ‡ เชฒเซ‡ เช…เชจเซ‡ เชคเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡ เชœเชฐเซ‚เชฐเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชธเชพเชฅเซ‡ Nginx เชชเซ‡เช•เซ‡เชœเชจเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเซ‡.

GitHub เชจเซ€ เชตเชฟเชถเชพเชณเชคเชพเชฎเชพเช‚ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เชตเชฟเช•เชฒเซเชช เชจ เชฎเชณเชคเชพเช‚, เช…เชฎเซ‡ เช…เชฎเชพเชฐเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชธเชพเชงเชจ เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ - 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 เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชฌเชจเชพเชตเซ€เช เช›เซ€เช, เช…เชจเซ‡ เชชเซ…เช•เซ‡เชœ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ เชฆเซ‡เช–เชพเชฏ เช›เซ‡ เชœเซเชฏเชพเช‚เชฅเซ€ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฒเซ‰เชจเซเชš เชฅเชพเชฏ เช›เซ‡.

เชเชฎเซเชฌเซ‡เชกเชฟเช‚เช—

เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เชŸเซ‚เชฒเชจเซ‡ CI/CD เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชฎเชพเช‚ เชชเชฃ เชเช•เซ€เช•เซƒเชค เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เช†เชœเซ‡ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เชฐเชนเซ‡เชฒเซ€ เช˜เชฃเซ€ CI เชธเชฟเชธเซเชŸเชฎเซ‹เชฎเชพเช‚เชฅเซ€ เช•เซ‹เชˆเชชเชฃ เช†เชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ เชŸเซ€เชฎเชธเชฟเชŸเซ€ เช…เชฅเชตเชพ Gitlab CI.

เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชœเซเชฏเชพเชฐเซ‡ เชชเชฃ Git เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚ เชธเซเชชเชทเซเชŸเซ€เช•เชฐเชฃ เชฌเชฆเชฒเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เช†เชฐเซเชŸเชฟเชซเซ‡เช•เซเชŸเชจเซเช‚ เชฌเชฟเชฒเซเชก เช†เชชเชฎเซ‡เชณเซ‡ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡. เชฐเชฟเชตเชฟเชเชจ เชจเช‚เชฌเชฐ เชฌเชฟเชฒเซเชก เชฒเซ‹เชจเซเชš เช•เชพเช‰เชจเซเชŸเชฐ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช›เซ‡.
เชฅเซ‹เชกเชพ เชตเชงเซ เชธเชฎเชฏ เชธเชพเชฅเซ‡, เชคเชฎเซ‡ เช†เชฐเซเชŸเชฟเชซเซ‡เช•เซเชŸเชจเซ‡ เชคเชฎเชพเชฐเชพ เชธเซเชฅเชพเชจเชฟเช• เชชเซ‡เช•เซ‡เชœ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€, เชจเซ‡เช•เซเชธเชธ, เช†เชฐเซเชŸเชฟเชซเซ‡เช•เซเชŸเชฐเซ€ เชตเช—เซ‡เชฐเซ‡ เชชเชฐ เชฎเซ‹เช•เชฒเชตเชพ เชฎเชพเชŸเซ‡ เช—เซ‹เช เชตเซ€ เชถเช•เซ‹ เช›เซ‹.

เชเช• เชตเชงเชพเชฐเชพเชจเซ‹ เชซเชพเชฏเชฆเซ‹ เช เช›เซ‡ เช•เซ‡ yaml เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเชจเซ‡ Ansible เช…เชฅเชตเชพ เช…เชจเซเชฏ เชธเซเชตเชšเชพเชฒเชฟเชค เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชธเชฟเชธเซเชŸเชฎ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชคเซเชฏเชพเช‚เชฅเซ€ เช†เชชเชฃเซ‡ เชตเชฐเซเชเชจ เชจเช‚เชฌเชฐ เช…เชจเซ‡ เชชเซ‡เช•เซ‡เชœ เชชเซเชฐเช•เชพเชฐ เชฒเชˆ เชถเช•เซ€เช เช›เซ€เช เชœเซ‡ เช†เชชเชฃเซ‡ เชœเชฎเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช.

เช†เช—เชณ เชถเซเช‚ เช›เซ‡

เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชนเชœเซ เชชเซ‚เชฐเซ‹ เชฅเชฏเซ‹ เชจเชฅเซ€. เช…เชฎเซ‡ เชนเชตเซ‡ เชœเซ‡เชจเชพ เชชเชฐ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช เชคเซ‡ เช…เชนเซ€เช‚ เช›เซ‡:

  • เช…เชฎเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซ€ เชถเช•เซเชฏเชคเชพเชจเซ‡ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเซ€เช เช›เซ€เช, เชชเชฐเช‚เชคเซ เชคเซ‡ เชœ เชธเชฎเชฏเซ‡ เชคเซ‡เชจเซ‡ เชถเช•เซเชฏ เชคเซ‡เชŸเชฒเซเช‚ เชธเชฐเชณ เชฐเชพเช–เซ‹. เชœเซ‹ เชคเชฎเชจเซ‡ เชฎเชพเชคเซเชฐ เชฌเซ‡เชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เชคเซ‹ เชคเชฎเซ‡ เชนเชœเชพเชฐ เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชจเชฅเซ€, เช…เชจเซ‡ เชฌเชพเช•เซ€เชจเชพ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชฌเช‚เชงเชฌเซ‡เชธเซ‡ เช›เซ‡. เช†เชฎเชพเช‚ เช•เชฎเซเชชเชพเช‡เชฒเซ‡เชถเชจ เชซเซเชฒเซ‡เช—เซเชธ (เชนเชตเซ‡ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เช†เช‚เชคเชฐเชฟเช• เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒ src/config.py เชฎเชพเช‚ เชฌเชฆเชฒเซ€ เชถเช•เซ‹ เช›เซ‹), เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เชชเชพเชฅ เช…เชจเซ‡ เชฒเซ‹เชจเซเชš เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡.
  • เช…เชฎเซ‡ เชตเชฟเชตเชฟเชง เช†เชฐเซเชŸเชฟเชซเซ‡เช•เซเชŸ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชเชฎเชพเช‚ เช†เชชเชฎเซ‡เชณเซ‡ เชชเซ‡เช•เซ‡เชœ เชฎเซ‹เช•เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชตเชฟเช•เชฒเซเชชเซ‹ เช‰เชฎเซ‡เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช.
  • เชฎเซ‹เชกเซเชฏเซเชฒ เชฒเซ‹เชก เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช•เชธเซเชŸเชฎ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‹ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชตเชพเชชเชฐเชตเชพ เชฎเชพเชŸเซ‡ github.com/nginx-modules/nginx_upstream_check_module เชคเชฎเชพเชฐเซ‡ เชชเชนเซ‡เชฒเชพ เชšเซ‹เช•เซเช•เชธ เชธเช‚เชธเซเช•เชฐเชฃเชจเซ‹ เชชเซ‡เชš เชฒเชพเช—เซ เช•เชฐเชตเซ‹ เชชเชกเชถเซ‡)
  • เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เช‰เชฎเซ‡เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡:
    • เชชเซ‡เช•เซ‡เชœ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเซเช‚ เช›เซ‡.
    • Nginx เชชเชพเชธเซ‡ เช†เชตเชถเซเชฏเช• เชธเช‚เชธเซเช•เชฐเชฃ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชœเชฐเซ‚เชฐเซ€ เชซเซเชฒเซ‡เช—เซเชธ เช…เชจเซ‡ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เชธเชพเชฅเซ‡ เชฌเชจเซ‡เชฒ เช›เซ‡.
    • เชœเชฐเซ‚เชฐเซ€ เชชเชพเชฅ, เชเช•เชพเช‰เชจเซเชŸเซเชธ เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เชตเชงเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ เชนเชตเซ‡ เช† เชธเชพเชงเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เช…เชจเซ‡ เชธเซเชงเชพเชฐเชพเช“ เชชเชฃ เชธเซ‚เชšเชตเซ€ เชถเช•เซ‹ เช›เซ‹ - github.com/TinkoffCreditSystems/Nginx-builder เชญเชฒเซ‡เชชเชงเชพเชฐเซเชฏเชพ!

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹