Π‘ΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ своя Nginx с няколко ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅!
Казвам сС Π‘Π΅Ρ€Π³Π΅ΠΉ, работя ΠΊΠ°Ρ‚ΠΎ инфраструктурСн ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ Π² Π΅ΠΊΠΈΠΏΠ° Π½Π° API ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° tinkoff.ru.

Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅, с ΠΊΠΎΠΈΡ‚ΠΎ сС сблъсквашС Π½Π°ΡˆΠΈΡΡ‚ Π΅ΠΊΠΈΠΏ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°Ρ‚Π° Π½Π° балансировчици Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Nginx Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Ρ‰Π΅ спомСна инструмСнта, ΠΊΠΎΠΉΡ‚ΠΎ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Π΅ΠΌ голяма част ΠΎΡ‚ тях.

Nginx Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‰ сС прокси-ΡΡŠΡ€Π²ΡŠΡ€. Π’ΠΎΠΉ сС ΠΎΡ‚Π»ΠΈΡ‡Π°Π²Π° с голямо количСство ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π΅Ρ‚ΠΎ Π½Π΅Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½ списък. ВсСки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ поставя ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ изисквания към функционалността Π½Π° балансировчика ΠΈ вСрсията Π½Π° Nginx (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° http/2 ΠΈ проксиранС Π½Π° grpc), Π° ΡΡŠΡ‰ΠΎ ΠΈ към ΡΡŠΡΡ‚Π°Π²Π° Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.

ИскамС Π΄Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ свСТа вСрсия с нСобходимия Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰Π° ΠΏΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ дистрибутив Π½Π° Linux. Π’ нашия случай Ρ‚ΠΎΠ²Π° са систСми Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° deb ΠΈ rpm. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΡŠΡ‚ с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π΅ сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° Π² Ρ‚Π°Π·ΠΈ статия.

ИскамС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ Π΄Π° промСнямС функционалността Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ балансировчици. И Ρ‚ΡƒΠΊ Π²Π΅Π΄Π½Π°Π³Π° възниква Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ β€” ΠΊΠ°ΠΊ Π΄Π° постигнСм Ρ‚ΠΎΠ²Π°, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π°ΠΌΠ΅ възмоТно Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ рСсурси? Π‘ΠΈΠ»ΠΎΡ‚ΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΎΡ‰Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ процСса Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΠΌ ΠΊΡ€Π°ΠΉΠ½ΠΎ число Π²Ρ…ΠΎΠ΄Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, Π° Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° deb/rpm ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° Π½ΡƒΠΆΠ½Π°Ρ‚Π° ОБ.

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°ΠΌΠ΅ Ρ€Π΅Π΄ΠΈΡ†Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ:

  • НС Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ със свСТа вСрсия Π½Π° Nginx.
  • Няма ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.
  • ΠšΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡΡ‚Π° ΠΈ сглобяванСто Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° Ρ€ΡŠΡ‡Π½ΠΎ ΠΎΡ‚Π½Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π΅ просто ΠΈΠ·Ρ‚ΠΎΡ‰ΠΈΡ‚Π΅Π»Π½ΠΎ.
  • Няма описаниС ΠΊΠ°ΠΊ Π΅ сглобСн ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ инстанс Π½Π° Nginx.

Π—Π° Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, сС Π½Π°Π»Π°Π³Π° инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° спСцификация Π² Ρ‡Π΅Ρ‚ΠΈΠΌΠΎ Π·Π° Ρ‡ΠΎΠ²Π΅ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ ΠΈ Π΄Π° сглобява ΠΏΠ°ΠΊΠ΅Ρ‚ Nginx с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° функционалност.

НС Π½Π°ΠΌΠΈΡ€Π°ΠΉΠΊΠΈ подходящ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π·Π° нас Π² пространствата Π½Π° GitHub, Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° създадСм собствСн инструмСнт β€” nginx-builder.

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π’ нашия инструмСнт искахмС Π΄Π° създадСм описаниС Π½Π° спСцификацията ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ слСд Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС поставСн Π² 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

Π’ΡƒΠΊ посочвамС, Ρ‡Π΅ искамС Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ deb-ΠΏΠ°ΠΊΠ΅Ρ‚ с вСрсия Π½Π° Nginx 1.14.2 ΠΈ нСобходимия Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. БСкцията с ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ Π΅ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»Π½Π°. Π—Π° всСки ΠΎΡ‚ тях ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΠΌ:

  • ИмС.
  • АдрСс, ΠΎΡ‚ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½:
    • Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. МоТС Π΄Π° сС посочат ΠΈ ΠΊΠ»ΠΎΠ½ ΠΈΠ»ΠΈ Ρ‚Π°Π³.
    • Π£Π΅Π± Π»ΠΈΠ½ΠΊ към Π°Ρ€Ρ…ΠΈΠ²Π°.
    • Π›ΠΎΠΊΠ°Π»Π΅Π½ Π»ΠΈΠ½ΠΊ към Π°Ρ€Ρ…ΠΈΠ²Π°.

Някои ΠΌΠΎΠ΄ΡƒΠ»ΠΈ изискват инсталация Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ зависимости, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° nginx-auth-ldap Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ инсталиран libldap2-dev. НСобходимитС зависимости ΡΡŠΡ‰ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ посочСни ΠΏΡ€ΠΈ описаниСто Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π°.

ΠžΠΊΡ€ΡŠΠΆΠ΅Π½ΠΈΠ΅

Π’ нашия инструмСнт ΠΌΠΎΠΆΠ΅ΠΌ Π±ΡŠΡ€Π·ΠΎ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΠΊΡ€ΡŠΠΆΠ΅Π½ΠΈΠ΅ с инсталирани ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅, създаванС Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΎ софтуСр. Π’ΡƒΠΊ ΠΈΠ΄Π΅Π°Π»Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠΆΠ΄Π° docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с всичко Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ (Π² рСпозитория Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° няколко ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° docker-Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ubuntu ΠΈ centos).

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ спСцификацията Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° ΠΈ ΠΎΠΊΡ€ΡŠΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ, стартирамС нашия сборщик, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ инсталирайки зависимоститС ΠΌΡƒ:

pip3 install -r requirements.txt
./main.py build -f [ΠΊΠΎΠ½Ρ„ΠΈΠ³_Ρ„Π°ΠΉΠ»].yaml -r [Π½ΠΎΠΌΠ΅Ρ€_Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ]

ΠΠΎΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° рСвизията Π΅ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΈ слуТи Π·Π° вСрсиониранС Π½Π° сборкитС. Π’ΠΎΠΉ сС записва Π² мСтаинформацията Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява лСсно обновяванС Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅.
По Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° наблюдавамС ΠΊΠ°ΠΊΠ²ΠΎ сС случва. Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° основнитС ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈ:

строитСл - ИНЀО - ΠŸΠ°Ρ€ΡΠΈΡ€Π°Π½Π΅ Π½Π° yaml Ρ„Π°ΠΉΠ»: example.config.yaml
строитСл - ИНЀО - БвалянС Π½Π° скриптовС Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° deb ΠΏΠ°ΠΊΠ΅Ρ‚
строитСл - ИНЀО - БвалянС Π½Π° nginx src...
строитСл - ИНЀО - --> http://nginx.org/download/nginx-1.14.1.tar.gz
строитСл - ИНЀО - БвалянС Π½Π° 3d-party ΠΌΠΎΠ΄ΡƒΠ»ΠΈ...
строитСл - ИНЀО - ΠœΠΎΠ΄ΡƒΠ»ΡŠΡ‚ nginx-auth-ldap Ρ‰Π΅ бъдС свалСн ΠΏΠΎ ΠΊΠ»ΠΎΠ½
строитСл - ИНЀО - -- Π“ΠΎΡ‚ΠΎΠ²ΠΎ: nginx-auth-ldap
строитСл - ИНЀО - -- Π“ΠΎΡ‚ΠΎΠ²ΠΎ: ngx_http_substitutions_filter_module
строитСл - ИНЀО - ΠœΠΎΠ΄ΡƒΠ»ΡŠΡ‚ headers-more-nginx-module Ρ‰Π΅ бъдС свалСн
строитСл - ИНЀО - ΠœΠΎΠ΄ΡƒΠ»ΡŠΡ‚ nginx-module-vts Ρ‰Π΅ бъдС свалСн ΠΏΠΎ Ρ‚Π°Π³
строитСл - ИНЀО - -- Π“ΠΎΡ‚ΠΎΠ²ΠΎ: nginx-module-vts
строитСл - ИНЀО - ΠœΠΎΠ΄ΡƒΠ»ΡŠΡ‚ ngx_devel_kit Ρ‰Π΅ бъдС свалСн ΠΏΠΎ Ρ‚Π°Π³
строитСл - ИНЀО - -- Π“ΠΎΡ‚ΠΎΠ²ΠΎ: ngx_devel_kit
строитСл - ИНЀО - -- Π“ΠΎΡ‚ΠΎΠ²ΠΎ: ngx_cache_purge
строитСл - ИНЀО - -- Π“ΠΎΡ‚ΠΎΠ²ΠΎ: ngx_http_dyups_module
строитСл - ИНЀО - БвалянС Π½Π° зависимости
строитСл - ИНЀО - Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° .deb ΠΏΠ°ΠΊΠ΅Ρ‚
строитСл - ИНЀО - ИзпълнСниС Π½Π° 'dh_make'...
строитСл - ИНЀО - ИзпълнСниС Π½Π° 'dpkg-buildpackage'...
dpkg-deb: ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ 'nginx' Π² '..\/nginx_1.14.1-1_amd64.deb'.

Π’Π°ΠΊΠ° Π±ΡƒΠΊΠ²Π°Π»Π½ΠΎ с няколко ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ създавамС срСда ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡ‚ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Nginx, Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ сС появява Π² дирСкторията, ΠΎΡ‚ която Π΅ стартиран ΡΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚.

Π’Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²Π³Ρ€Π°Π΄ΠΈΠΌ нашия инструмСнт Π² CI/CD процСси. Π’ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ всяка ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ към днСшСн Π΄Π΅Π½ CI систСми, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Teamcity ΠΈΠ»ΠΈ Gitlab CI.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° всяка промяна Π½Π° спСцификацията Π² Git рСпозитория, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС стартира ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°. НомСра Π½Π° рСвизията сС ΠΏΡ€ΠΈΠ²ΡŠΡ€Π·Π²Π° към броя Π½Π° стартиранията Π½Π° Π±ΠΈΠ»Π΄Π°.
ΠŸΠΎΡ…Π°Π±ΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ‰Π΅ ΠΌΠ°Π»ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° настроим ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° Π² Π»ΠΎΠΊΠ°Π»Π΅Π½ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Nexus, Artifactory ΠΈ Ρ‚.Π½.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ плюс Π΅, Ρ‡Π΅ конфигурационният yaml Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΡΠ²ΡŠΡ€Π·Π°Π½ Π² Ansible ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³Π° систСма Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Π° конфигурация ΠΈ Π΄Π° Π²Π·ΠΈΠΌΠ° Π½ΠΎΠΌΠ΅Ρ€ Π½Π° вСрсия ΠΈ Ρ‚ΠΈΠΏ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ искамС Π΄Π° Π΄Π΅ΠΏΠ»ΠΎΠΈΡ€Π°ΠΌΠ΅.

Какво слСдва

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½. Π•Ρ‚ΠΎ Π½Π°Π΄ ΠΊΠ°ΠΊΠ²ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°:

  • Π Π°Π·ΡˆΠΈΡ€ΡΠ²Π°ΠΌΠ΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅, Π½ΠΎ ΡΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π³ΠΎ Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ максимално прост. НС искамС Π΄Π° опрСдСлямС хиляда ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π°, Π°ΠΊΠΎ Π½ΠΈ трябват само Π΄Π²Π°, Π° останалитС отговарят Π½Π° ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‰ΠΈΡ‚Π΅ сС стойности. Π’ΠΎΠ²Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° Ρ„Π»Π°Π³ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° компилация (Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈ във Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ Ρ„Π°ΠΉΠ» Π·Π° конфигурация src/config.py), ΠΏΡŠΡ‚ΠΈΡ‰Π°Ρ‚Π° Π·Π° инсталация, потрСбитСля Π·Π° изпълнСниС.
  • ДобавямС ΠΎΠΏΡ†ΠΈΠΈ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π° Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈ.
  • ИзпълнСниС Π½Π° потрСбитСлска ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° github.com/nginx-modules/nginx_upstream_check_module ΠΏΡŠΡ€Π²ΠΎ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌ ΠΏΠ°Ρ‡ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° вСрсия)
  • ДобавямС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° тСстовС:
    • ΠŸΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ сС инсталира ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎ.
    • Nginx ΠΈΠΌΠ° Π½ΡƒΠΆΠ½Π°Ρ‚Π° вСрсия ΠΈ Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Ρ„Π»Π°Π³ΠΎΠ²Π΅ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.
    • Π‘ΡŠΠ·Π΄Π°Π²Π°Ρ‚ сС Π½ΡƒΠΆΠ½ΠΈΡ‚Π΅ ΠΏΡŠΡ‚ΠΈΡ‰Π°, Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ ΠΈ Ρ‚.Π½.

Но ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚ΠΎΠ·ΠΈ инструмСнт ΠΎΡ‰Π΅ сСга, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚Π΅ допълнСния β€” github.com/TinkoffCreditSystems/Nginx-builder Π΄ΠΎΠ±Ρ€Π΅ дошли!

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster