Need help with nginx-config-builder?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

linkedin
147 Stars 34 Forks BSD 2-Clause "Simplified" License 18 Commits 4 Opened issues

Description

A python library for building nginx configuration files programatically

Services available

!
?

Need anything else?

Contributors list

PyPI Build Status Documentation Status License

nginx-config-builder

A python library for constructing nginx configuration files.

Installation

pip install nginx-config-builder

Usage

This library ships two interfaces to build configuration with, a high level builder API as well as the low level block-based API that the builder makes use of. Consumers can choose whichever makes sense for their use case:

The Builder API

The builder API is expressive and pluggable.

>>> from nginx.config.builder import NginxConfigBuilder
>>> nginx = NginxConfigBuilder(daemon='on')
>>> with nginx.add_server() as server:
...     server.add_route('/foo', proxy_pass='upstream').end()
...
>>> print(nginx)

error_log logs/nginx.error.log; worker_processes auto; daemon on; http { include ../conf/mime.types; server { server_name _; location /foo { proxy_pass upstream; } } } events { worker_connections 1024; }

The Block API

The block api provides more granularity and explicitness at the cost of being substantially more verbose than the builder api.

>>> from nginx.config.api import Config, Section, Location
>>> events = Section('events', worker_connections='1024')
>>> http = Section('http', include='../conf/mime.types')
>>> http.sections.add(
...     Section(
...         'server',
...         Location(
...             '/foo',
...             proxy_pass='upstream',
...         ),
...         server_name='_',
...     )
... )
>>> nginx = Config(
...     events,
...     http,
...     worker_processes='auto',
...     daemon='on',
...     error_log='var/error.log',
... )
>>> print(nginx)

error_log var/error.log; worker_processes auto; daemon on; http { include ../conf/mime.types; server { server_name _; location /foo { proxy_pass upstream; } } } events { worker_connections 1024; }

Development

Checkout the repo:

git clone [email protected]:linkedin/nginx-config-builder.git

Set up your virtual environment:

cd nginx-config-builder
python setup.py venv
source activate

Install the project and start hacking!

python setup.py develop

Don't forget to write/run tests!

pip install tox
tox

Authors

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.