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

OSCHINA-MIRROR/hshqcn-nginx-unit-lua

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 4.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 08:37 bc8c7d5

Nginx-Unit: поддержка Lua5.4/LuaJIT

Введение

Nginx-Unit поддерживает Lua5.4 и LuaJIT. Может работать с фреймворками Lor/Vanilla, имеет специфическую адаптацию для Openresty.

На данный момент реализована только базовая функциональность HTTP. Тестирование проводилось только на MacOS.

Архитектура программного обеспечения

Lua не интегрирован в Unit, как другие поддерживаемые языки, а используется в виде внешнего приложения (тип конфигурации — external).

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

Основной процесс Unit запускает три функциональных контроллера процессов, маршрутизатор, прототип приложения и несколько процессов приложений. Между этими процессами происходит обмен данными.

Структура каталогов:

  • build/ — исходный код и зависимости для сборки;
  • lib/ — файлы библиотек для работы;
  • config/ — конфигурационные файлы для запуска и настройки приложений;
  • frameworks/ — фреймворки, используемые приложениями;
  • apps/ — приложения;
  • unitd.lua — управление службами UNIT, просмотр состояния и конфигурации, запуск приложений.

Инструкция по установке

  1. Зависимости:
    • lua-cjson;
    • base64;
    • luaffifb.
  2. Компиляция base64:
    1. Распакуйте исходный пакет base64 из каталога build/deps/.
    2. На MacOS измените файл Makefile, закомментировав команду $(OBJCOPY) в цели lib/libbase64.o.
    3. Выполните команды:
      •   # Генерация файлов lib/libbase64.o, lib/config.h
          # x86
          SSSE3_CFLAGS=-mssse3 \
          SSE41_CFLAGS=-msse4.1 \
          SSE42_CFLAGS=-msse4.2 \
          AVX2_CFLAGS=-mavx2 \
          AVX_CFLAGS=-mavx \
              make lib/libbase64.o
      
      
    4. (cd test; make test) # Выполнение тестов и бенчмарков.
  3. Сборка nginx-unit-lua:
    cd ..
    # Генерация Makefile для Lua5.4 и Makefile для каждой общей библиотеки
    # Конфигурация компиляции: ./make/inc.lua и make.lua в каждом каталоге общей библиотеки
    # luajit make.lua
    ./make.lua # -g для генерации отладочной информации, -r без отладочной информации
    make
    make clean

Использование

В каталоге UNIT-ROOT/:

  • config/config.lua для настройки UNIT, регистрации фреймворков и приложений.
  • Выполнение ./unitd.lua для управления. Можно использовать следующие команды:
    • [i[nfo]] — команда по умолчанию, показывает доступные команды и список зарегистрированных приложений;
    • r[estart], s[tart], q[uit] — управление unitd;
    • v[host] [APP-NAME/No.] — просмотр текущей конфигурации vhost для UNIT в формате JSON;
    • d[etail] [APP-NAME/No.] — перечисление информации о зарегистрированных приложениях без параметров, с параметрами — информация о регистрации, конфигурации, ngx и vhost;
    • u[pdate] [APP-NAME/No.] — обработка конфигурации и обновление конфигурации vhost в UNIT;
    • g[et] <APP-NAME/No.> — тестирование GET-запросов.

Вклад в проект

  1. Форк этого репозитория.
  2. Создание ветки Feat_xxx.
  3. Отправка кода.
  4. Создание Pull Request.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/hshqcn-nginx-unit-lua.git
git@api.gitlife.ru:oschina-mirror/hshqcn-nginx-unit-lua.git
oschina-mirror
hshqcn-nginx-unit-lua
hshqcn-nginx-unit-lua
master