Export to GitHub

pynginxconfig - Documentation_ru.wiki


Внимание!

PyNginxConfig не генерирует правильные конфиги для nginx, он генерирует лишь синтаксически правильные конфигурационные файлы. Вся ответственность за их правильность ложится на плечи программиста.

Установка

Скачайте и распакуйте архив, далее выполните: python setup.py install Или через pip pip install pynginxconfig

Базовая инициализация

``` from pynginxconfig import NginxConfig nc = NginxConfig() nc.load(''' user www www; worker_processes 2;

events { connections 2000;

# use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];
use kqueue;

}

http { server { location /404.html { root /spool/www;

        charset         on;
        source_charset  koi8-r;
    }
}

} ''') print(nc.gen_config()) ``` Советую взять пример базовой конфигурации со страницы NginX NginX documentation

Добавление параметров.

Добавление одиночного текстового параметра

nc.append(('user', 'www www'))

Добавление параметра в определённую позицию

nc.append(('user', 'www www'), position=1)

Добавление блока данных

nc.append({'name':'events', 'param':'', 'value':[('connections', '2000'), ('use', 'kqueue')]})

Добавление многострочного параметра

nc.append(('multiline', ['big', 'multiline', 'value']))

Структуры в data

Одиночный текстовый параметр: ('name', 'value') Пример генерации: name value;

Многострочный параметр

('name', ['some', 'values', 'here']) Пример генерации: name some values here;

Блок параметров.

{'name': 'location', 'param': '/', 'value': [('param1', '2000'), ('use', 'kqueue')]} Пример генерации: location / { param1 2000; use kqueue; }

Получение параметров:

nc[0] или nc.get('user')

Получение блоков:

nc.get(('events',)) nc.get_value(nc.get([('http',), ('server',), ('location', '/404.html')]))

Получение параметра в блоке

nc.get_value(nc.get([('http',), ('server',), ('location', '/404.html'), 'charset']))

Получение значений

nc.get_value(nc.get('user'))

Изменение данных параметра.

nc.set([('events',), 'connections'], '100')

Удаление параметров.

nc.remove('user') nc.remove(['user']) ```

Обратите внимание на запятые

nc.remove([('http',), ('server',), ('location', '/404.html'), 'root']) ```

Удаление блоков.

``` nc.remove([('http',), ('server',), ('location', '/404.html')])

nc.remove([('http', '')]) nc.remove(('http', '')) ```