1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-Nginx-Unit

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

NGINX Unit

Project Status: Active – The project has reached a stable, usable state and is being actively developed.

CI

GitHub Discussions

Universal Web App Server

NGINX Unit — это лёгкий и универсальный сервер с открытым исходным кодом, который имеет две основные возможности:

  • обслуживает статические медиафайлы;
  • запускает код приложения на семи языках.

Unit объединяет несколько уровней современного стека приложений в мощное, согласованное решение с акцентом на производительность, низкую задержку и масштабируемость. Он предназначен для использования в качестве универсального строительного блока для любой веб-архитектуры, независимо от её сложности, от развёртываний корпоративного масштаба до домашней страницы вашего питомца.

Собственный RESTful JSON API (#openapi-specification) позволяет выполнять динамические обновления без прерываний и гибкую настройку, а встроенная производительность надёжно масштабируется до рабочих нагрузок производственного уровня. Мы достигаем этого с помощью сложной асинхронной многопоточной архитектуры, включающей несколько процессов, чтобы обеспечить безопасность и надёжность, получая максимальную отдачу от современных вычислительных платформ.

Установка

macOS

Выполните следующую команду, чтобы установить unitd (демон Unit) и unitctl (инструмент управления).

$ brew install nginx/unit/unit

Подробнее и доступные языковые пакеты см. в документации.

Docker

$ docker pull unit:<TAG>
$ mkdir /tmp/unit-control # customize as needed.
$ docker run -d \
      --mount type=bind,src=/tmp/unit-control,dst=/var/run \
      --mount type=bind,src=.,dst=/www \
      --network host \
      unit

Описание тегов изображений см. в документации.

Внимание: последний тег изображения может не поддерживать определённые языковые модули, проверьте доступные теги изображений по ссылке выше перед извлечением своего образа.

Ваш текущий рабочий каталог теперь будет подключён к образу Unit в /www. Вы можете получить доступ к его сокету по адресу /tmp/unit-control/control.unit.sock, если не было сделано никаких дополнительных настроек.

Debian, Ubuntu, Amazon Linux, Fedora, Red Hat

Этот вспомогательный скрипт настраивает правильные репозитории пакетов для системы.

$ wget https://raw.githubusercontent.com/nginx/unit/master/tools/setup-unit && chmod +x setup-unit
# ./setup-unit repo-config

Для Debian:

# apt install unit

Для Fedora:

# yum install unit

Подробности и доступные языковые пакеты см. в документации.

Начало работы с unitctl

unitctl упрощает управление процессами NGINX Unit через простой в использовании интерфейс командной строки. Чтобы начать работу с unitctl, загрузите его из официальных выпусков GitHub или Homebrew.

Установка

[!NOTE] Если вы установили Unit с Homebrew, вы можете пропустить этот шаг, так как unitctl включён по умолчанию.

Загрузите соответствующий двоичный файл unitctl для вашей системы из выпусков NGINX Unit.

$ tar xzvf unitctl-master-x86_64-unknown-linux-gnu.tar.gz
# mv unitctl /usr/local/bin/

Запуск Unit с использованием Docker

Если у вас установлен Docker на вашем компьютере, вы можете легко запустить один из официальных образов Docker Unit вместе с вашим приложением.

[!TIP] Руководства по использованию и настройке доступны на unit.nginx.org для веб-приложений, созданных с помощью Python, PHP, WebAssembly. Node.js, Ruby и другие

Здесь приведён пример использования образа Docker unit:python:

$ unitctl instances new 127.0.0.1:8001 /path/to/app 'unit:python'

/path/to/app будет смонтирован в /www файловой системы Docker.

Сохраните это в /path/to/app/wsgi.py:

def application(environ, start_response):
    start_response("200 OK", [("Content-Type", "text/plain")])
    return (b"Hello, Python on Unit!")

Затем вы можете интерактивно отредактировать текущую активную конфигурацию:

$ unitctl edit
{
  "listeners": {
    "*:8000": {
      // Point listener to new application
      "pass": "applications/python"
    }
  },

  // Add an application definition
  "applications": {
    "python": {
        "type": "python",
        "path": "/www/",
        "module": "wsgi"
    }
  }
}

Действительные конфигурации будут применены после сохранения и закрытия.

$ curl localhost:8000

Hello, Python on Unit!

Дополнительные примеры конфигурации Python можно найти в документации Unit здесь.

Hello World с PHP и curl

Unit запускает приложения на различных языках. Давайте рассмотрим конфигурацию простого PHP-приложения на Unit с помощью curl.

Предположим, вы сохранили PHP-скрипт как /www/helloworld/index.php:

<?php echo "Hello, PHP on Unit!"; ?>

Чтобы запустить его на Unit с установленным модулем unit-php, сначала настройте объект приложения. Давайте сохраним наш первый фрагмент конфигурации в файле с именем config.json:

{
    "helloworld": {
        "type": "php",
        "root": "/www/helloworld/"
    }
}

Сохранение его в виде файла не обязательно, но может пригодиться для более крупных объектов.

Теперь PUT-те его в раздел /config/applications API управления Unit, обычно доступный по умолчанию через сокет домена Unix:

# curl -X PUT --data-binary @config.json --unix-socket  \
       /path/to/control.unit.sock http://localhost/config/applications
{
    "success": "Reconfiguration done."
}

Далее обратитесь к приложению из объекта слушателя в разделе /config/listeners API. На этот раз мы передаём конфигурационный фрагмент прямо из командной строки:

# curl -X PUT -d '{"127.0.0.1:8080": {"pass": "applications/helloworld"}}'  \
       --unix-socket /path/to/control.unit.sock http://localhost/config/listeners
{
    "success": "Reconfiguration done."
}

Теперь Unit принимает запросы по указанному IP и порту, передавая их процессу приложения. Ваше приложение работает!

$ curl 127.0.0.1:8080

      Hello, PHP on Unit!

Наконец, запросите весь раздел /config API управления:

# curl --unix-socket /path/to/control.unit.sock http://localhost/config/

Вывод Unit должен содержать оба фрагмента, аккуратно организованные:

{
    "listeners": {
        "127.0.0.1:8080": {
            "pass": "applications/helloworld"
        }
    },

    "applications": {
        "helloworld": {
            "type": "php",
            "root": "/www/helloworld/"
        }
    }
}

WebAssembly

Unit поддерживает запуск компонентов WebAssembly (WASI 0.2). Дополнительную информацию см. в документации по конфигурации Unit.

Спецификация OpenAPI

Наша спецификация OpenAPI направлена на упрощение настройки и интеграции развёртываний NGINX Unit и предоставление авторитетного источника знаний о контрольном API.

Сообщество

  • Начните задавать вопросы и делиться своими мыслями в GitHub Discussions.

  • Наша страница GitHub issues предлагает пространство для более технического обсуждения в вашем собственном темпе.

  • Карта проектов на GitHub проливает свет на нашу текущую работу и планы на будущее.

  • Наш официальный веб-сайт может предоставить ответы, которые нелегко найти иначе.

  • Присоединяйтесь к проекту, внеся свой вклад! См. страницу внесения вклада.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

NGINX Unit — это динамический сервер веб-приложений, предназначенный для запуска приложений на разных языках. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-Nginx-Unit.git
git@api.gitlife.ru:oschina-mirror/mirrors-Nginx-Unit.git
oschina-mirror
mirrors-Nginx-Unit
mirrors-Nginx-Unit
master