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

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

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

  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ «return» ΠΈ «location» Π² Π±Π»ΠΎΠΊΠ°Ρ… «action» для Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ возвращСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈΠ»ΠΈ пСрСнаправлСния Π½Π° внСшний рСсурс. НапримСр, для Π·Π°ΠΏΡ€Π΅Ρ‚Π° доступа ΠΊ URI, ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄ маску «*/.git/*», ΠΈΠ»ΠΈ пСрСнаправлСния Π½Π° хост с www ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ настройки:

    {
    «match»: {
    «uri»: «*/.git/*»
    },

    «action»: {
    «return»: 403
    }
    }

    {
    «match»: {
    «host»: «example.org»,
    },

    «action»: {
    «return»: 301,
    «location»: «https://www.example.org»
    }
    }

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ вСса сСрвСров Π² Π±Π»ΠΎΠΊΠ°Ρ… «upstream«. НапримСр, ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ с Ρ†Π΅Π»Ρ‹ΠΌΠΈ вСсами, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° 192.168.0.103 Π² Π΄Π²Π° Ρ€Π°Π·Π° мСньшСго числа запросов, Ρ‡Π΅ΠΌ для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…:

    {
    «192.168.0.101:8080»: {
    «weight»: 2
    },
    «192.168.0.102:8080»: {
    «weight»: 2
    },
    «192.168.0.103:8080»: { },
    «192.168.0.104:8080»: {
    «weight»: 2
    }
    }

    Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ привСсти ΠΊ Π±ΠΎΠ»Π΅Π΅ простой ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅:

    {
    «192.168.0.101:8080»: { },
    «192.168.0.102:8080»: { },
    «192.168.0.103:8080»: {
    «weight»: 0.5
    },
    «192.168.0.104:8080»: { }
    }

  • Π Π΅ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ со сборкой Π² DragonFly BSD;
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ошибка, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠ°Ρ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ ΠΊΠΎΠ΄Π° 502 «Bad Gateway» ΠΏΡ€ΠΈ высокой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅;
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Π° ΡƒΡ‚Π΅Ρ‡ΠΊΠ° памяти Π² router, ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ начиная с выпуска 1.13.0;
  • УстранСны нСсовмСстимости с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ прилоТСниями Node.js.

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