Выпуск сервера приложений NGINX Unit 1.27.0

Опубликован сервер приложений NGINX Unit 1.27.0, в рамках которого развивается решение для обеспечения запуска web-приложений на различных языках программирования (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js и Java). Под управлением NGINX Unit может одновременно выполняться несколько приложений на разных языках программирования, параметры запуска которых можно изменять динамически без необходимости правки файлов конфигурации и перезапуска. Код написан на языке Си и распространяется под лицензией Apache 2.0. С особенностями NGINX Unit можно познакомиться в анонсе первого выпуска.

В новой версии:

  • Добавлена возможность использования переменных и пустых значений в директиве “location”, привязанных к действиям “return”.
  • Упрощено перенаправление HTTP-запросов на HTTPS. Добавлена новая переменная $request_uri, содержащая URI запроса, которую можно использовать при определении маршрута в качестве параметра директивы “location” внутри блока “action”:
    { “listeners”: { “*:443”: { “tls”: { “certificate”: “example.com” }, “pass”: “routes” }, “*:80”: { “pass”: “routes” } }, “routes”: [ { “match”: { “scheme”: “http” }, “action”: { “return”: 301, “location”: “https://${host}${request_uri}” } }
    }
  • Предоставлена возможность настройки имени файла, отличного от index.html, который будет отдан при обращении с указанием только каталога (например, site.com/cms/).
    “routes”: [ { “match”: { “uri”: “/cms/*” }, “action”: { “share”: “/var/cms$uri”, “index”: “default.html” } }, { “action”: { “share”: “/var/www$uri” } }
    ]
  • Для Ruby Rack реализована установка переменной окружения “SCRIPT_NAME”.
  • Обеспечена совместимость с GCC 12.
Release. Ссылка here.