Π•ΡΡ‚ΡŒ мастСр процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ управляСт асинхронными (Π’ Apache Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹ Π±Ρ‹Π»ΠΈ синхронныС) Π²ΠΎΡ€ΠΊΠ΅Ρ€Π°ΠΌΠΈ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ², ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ количСство Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ² Π΄ΠΎ числа ядСр Π² вашСй систСмС, это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ процСссы. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π²ΠΎΡ€ΠΊΠ΅Ρ€Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΎΡ€ΠΊΠ΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ ΠΈ ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ большоС количСство ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… соСдинСний. Π’ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ процСссорами.

Nginx ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² качСствС RΠ΅verse proxy.

Π£Π·Π½Π°Ρ‚ΡŒ сколько ΠΈ ΠΊΠ°ΠΊΠΈΡ… Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ² Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ количСство Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ² Ρ€Π°Π²Π½ΠΎ количСству ядСр.

ps aux | grep nginx

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°:

  • Π£ΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ измСнСния ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° Π±Π΅Π· пСрСзапуска.
  • Π£ΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ саму Π²Π΅Ρ€ΡΠΈΡŽ nginx Π±Π΅Π· остановки: сначала ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹, ΠΊΠΎΠ³Π΄Π° всС Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹, обновляСтся мастСр процСсс.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ

  • Π’Π½Π΅ зависимости ΠΎΡ‚ порядка location запрос Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Π’Π°ΠΊ ΠΊΠ°ΠΊ nginx ΠΈΡ‰Π΅Ρ‚ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ совпадСниС с прСфиксным location’ом, Π½Π΅ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ рСгулярным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΈ послС этого Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ этот location. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конфигурация Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ location’а, Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ location’ы ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.
    • Для рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ максимальноС совпадСниС, Ρ‚ΠΎ выбираСтся location, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ совпало самым ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ. Π’ΠΎ Π΅ΡΡ‚ΡŒ рСгулярныС выраТСния Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ порядка, поэтому ΠΈΡ… стоит ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ
  • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ – использованиС copy-paste, вмСсто ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ вынСсти ΠΎΠ±Ρ‰ΠΈΠ΅ части ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π²Π½ΡƒΡ‚Ρ€ΠΈ location’а Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ для Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
  • Rewrites Π½Π΅ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅.
  • Evil – Ρ‚ΠΎΠΆΠ΅ Π½Π΅ рСкомСндуСмая конструкция Π² nginx, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ Evil, Π·Π½Π°Π΅Ρ‚ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ 10 Π² ΠΌΠΈΡ€Π΅, ΠΈ Π²Ρ‹ вряд Π»ΠΈ Π²Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² ΠΈΡ… число.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ if Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Nginx

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ

  • Π•ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ события Π² 00 Kafka