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

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

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

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ€Π΅ΠΆΠΈΠΌ изоляции «rootfs» для ограничСния доступа прилоТСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ части Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Для смСны Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ для прилоТСния корня Π€Π‘ примСняСтся Π²Ρ‹Π·ΠΎΠ² pivot_root(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ нСбСзопасного систСмного Π²Ρ‹Π·ΠΎΠ²Π° chroot() Π½Π΅ просто смСщаСт ΠΊΠΎΡ€Π΅Π½ΡŒ Π€Π‘, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ пространства ΠΈΠΌΡ‘Π½, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ Ρ‚ΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠΌΠΈΠΌΠΎ нСпосрСдствСнно ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° прилоТСния, Unit Ρ‚Π°ΠΊΠΆΠ΅ автоматичСски ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ Π€Π‘ всС спСцифичныС языковыС зависимости (Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ числа языков).

    {
    «type»: «python 2.7»,
    «path»: «/»,
    «home»: «/venv/»,
    «module»: «wsgi»,
    «isolation»: {
    «rootfs»: «/var/app/sandbox/»
    }
    }

  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ указания Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… схСм Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π½ΠΎΠ²ΠΎΠΉ сСкции «targets«. Указанная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ позволяСт ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ настройку ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Ρ… схСм адрСсации, ΠΊΠΎΠ³Π΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, большая Ρ‡Π°ΡΡ‚ΡŒ запросов обрабатываСтся Ρ‡Π΅Ρ€Π΅Π· index.php нСзависимо ΠΎΡ‚ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ URI, Π° интСрфСйс администратора Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ приводят ΠΊ Π²Ρ‹Π·ΠΎΠ²Ρƒ скриптов. Π Π°Π½Π΅Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ настройки ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Ρ‡Π΅Ρ€Π΅Π· опрСдСлСния Π΄Π²ΡƒΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΎΠ΄Π½ΠΈΠΌ. НапримСр, вмСсто:

    {
    «wp_index»: {
    «type»: «php»,
    «user»: «wp_user»,
    «group»: «wp_user»,
    «root»: «/path/to/wordpress/»,
    «script»: «index.php»
    },

    «wp_direct»: {
    «type»: «php»,
    «user»: «wp_user»,
    «group»: «wp_user»,
    «root»: «/path/to/wordpress/»
    }
    }

    ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ

    {
    «wp»: {
    «type»: «php»,
    «user»: «wp_user»,
    «group»: «wp_user»,

    «targets»: {
    «index»: {
    «root»: «/path/to/wordpress/»,
    «script»: «index.php»
    },

    «direct»: {
    «root»: «/path/to/wordpress/»
    }
    }
    }
    }

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° кодирования символов Π² Ρ„ΠΎΡ€ΠΌΠ΅ «%xx» Π² опциях сопоставлСния «uri» ΠΈ «arguments», Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΎΠΏΡ†ΠΈΠΈ «pass».

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