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

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

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

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

ИскамС Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π½ΠΎΠ²Π° вСрсия с нСобходимия Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰Π° ΠΏΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ дистрибутив Π½Π° Linux. Π’ нашия случай Ρ‚ΠΎΠ²Π° са Π΄Π΅Π± ΠΈ 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 [Π½ΠΎΠΌΠ΅Ρ€_Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ]

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

builder - INFO - Анализ yaml Ρ„Π°ΠΉΠ»Π°: example.config.yaml
builder - INFO - Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ скрипты для сборки deb ΠΏΠ°ΠΊΠ΅Ρ‚Π°
builder - INFO - Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ nginx src...
builder - INFO - --> http://nginx.org/download/nginx-1.14.1.tar.gz
builder - INFO - Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ сторонних ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ...
builder - INFO - ΠœΠΎΠ΄ΡƒΠ»ΡŒ nginx-auth-ldap Π±ΡƒΠ΄Π΅Ρ‚ скачан ΠΏΠΎ Π²Π΅Ρ‚ΠΊΠ΅
builder - INFO - -- Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ: nginx-auth-ldap
builder - INFO - -- Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ: ngx_http_substitutions_filter_module
builder - INFO - ΠœΠΎΠ΄ΡƒΠ»ΡŒ headers-more-nginx-module Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ
builder - INFO - ΠœΠΎΠ΄ΡƒΠ»ΡŒ nginx-module-vts Π±ΡƒΠ΄Π΅Ρ‚ скачан ΠΏΠΎ Ρ‚Π΅Π³Ρƒ
builder - INFO - -- Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ: nginx-module-vts
builder - INFO - ΠœΠΎΠ΄ΡƒΠ»ΡŒ ngx_devel_kit Π±ΡƒΠ΄Π΅Ρ‚ скачан ΠΏΠΎ Ρ‚Π΅Π³Ρƒ
builder - INFO - -- Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ: ngx_devel_kit
builder - INFO - -- Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ: ngx_cache_purge
builder - INFO - -- Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ: ngx_http_dyups_module
builder - INFO - Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ зависимостСй
builder - INFO - Π‘Π±ΠΎΡ€ΠΊΠ° .deb ΠΏΠ°ΠΊΠ΅Ρ‚Π°
builder - INFO - ВыполняСм 'dh_make'...
builder - INFO - ВыполняСм '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