Выпуск сСрвСра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ NGINX Unit 1.9.0

Бостоялся выпуск сСрвСра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ NGINX Unit 1.9, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ развиваСтся Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для обСспСчСния запуска web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках программирования (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ΠΈ Java). Под ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ NGINX Unit ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ нСсколько ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запуска ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ динамичСски Π±Π΅Π· нСобходимости ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ пСрСзапуска. Код написан Π½Π° языкС Π‘ΠΈ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. Π‘ особСнностями NGINX Unit ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² анонсС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ выпуска.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии:

  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ запросов ΠΏΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ URI, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌ ΠΈ Cookie;

    «headers»: [
    {
    «Accept-Encoding»: «*gzip*»,
    «User-Agent»: «Mozilla/5.0*»
    },
    {
    «User-Agent»: «curl*»
    }
    ]

  • Π’ ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… сопоставлСния ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° масок Π² сСрСдинС выраТСния. НапримСр,

    «host»: [«eu-*.example.com», «!eu-5.example.com»]

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, отправляСмых с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° POST, для манипуляции содСрТимым массивов Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (измСнСния ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON);

    curl -X POST -d ‘{«match»: {«uri»: «/production/*»}, \
    «action»: {«pass»: «applications/wiki-prod»}}’ \
    —unix-socket=/path/to/control.unit.sock \
    http://localhost/config/routes/

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° смСны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ capabilities CAP_SETUID ΠΈ CAP_SETGID Π² Linux Π±Π΅Π· выполнСния основного процСсса ΠΏΠΎΠ΄ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru