Главная
Главная Руководства Ubuntu › unit - установка в Ubuntu



Автор:

Статья опубликована: 2019-05-30 19:46:35
Последние правки: 2019-07-08 12:09:54

Nginx Unit — это самостоятельный продукт от команды разработчиков nginx, который представляет из себя легковесный сервер приложений (application server) с открытым кодом, и предназначен «ответить на запросы сегодняшних динамических и распределённых приложений».

  • Исходные данные
    # cat /etc/os-release
    Ubuntu 18.04.2 LTS
    # unitd --version
    unit version: 1.9.0
    

  • Установка
    Создаем файл /etc/apt/sources.list.d/unit.list, куда добавляем:

    - для Ubuntu 16.04
    deb https://packages.nginx.org/unit/ubuntu/ xenial unit
    deb-src https://packages.nginx.org/unit/ubuntu/ xenial unit
    
    - для Ubuntu 18.04
    deb https://packages.nginx.org/unit/ubuntu/ bionic unit
    deb-src https://packages.nginx.org/unit/ubuntu/ bionic unit
    
    Добавляем ключ:
    # curl -LSs https://nginx.org/keys/nginx_signing.key | apt-key add -
    
    Устанавливаем unit:
    # apt-get update
    # apt-get install unit unit-dev
    
    Далее, устанавливаем модули для поддержки языков. Можно установить все или же только те, которые нужны:
    - для Ubuntu 16.04:
    # apt-get install unit-go unit-jsc8 unit-php unit-perl \
    unit-python2.7 unit-python3.5 unit-ruby
    
    - для Ubuntu 18.04:
    # apt-get install unit-go1.9 unit-go1.10 unit-jsc8 \
    unit-jsc10 unit-php unit-perl unit-python2.7 unit-python3.6 unit-ruby
    

  • Application и listener
    Настройка unit производится через API. Для начала, запишем в файл (unit.config) конфигурацию для perl-приложения и listener:
    {
      "applications": {
        "test_perl": {
          "type": "perl",
          "processes": {
            "max": 20,
            "spare": 5
          },
          "user": "www",
          "group": "www",
          "working_directory": "/home/test/cgi-bin",
          "script": "/home/test/cgi-bin/index.psgi"
        }
      },
      "listeners": {
        "127.0.0.1:8380": {
          "application": "test_perl"
        }
      }
    }
    
    Записываем конфиг в unit:
    # curl -X PUT -d @unit.config --unix-socket /run/control.unit.sock http://localhost/config
    
    NGINX (упрощенно):
    server {
      listen 80;
      server_name localhost;
      root /home/test/htdocs;
    
      location / {
        try_files $uri @index;
       }
    
       location @index {
         proxy_pass http://127.0.0.1:8380;
         proxy_set_header Host $host;
       }
    }