Skip to main content

DDD nginx framework for python

Project description

DDD Nginx Framework

Build Status Pypi Status Coveralls Status

Installation

From source code:

python setup.py install

From pypi:

pip install ddd-base

Usage

from ddd_nginx.nginx import Nginx
from ddd_nginx.map import Map, MapKeyParis, MapDefinition
from ddd_nginx.server import Server
from ddd_nginx.location import Location, ReverseProxyStrategy
from ddd_nginx.upstream import Upstream


nginx = Nginx(host="oneapi.cc")
nginx.namespace = "api"

a_map = Map(MapDefinition(key="$http_apikey", value="$api_client_name"))
a_map.append(MapKeyParis("7B5zIqmRGXmrJTFmKa99vcit", "client_one"))
a_map.append(MapKeyParis("QzVV6y1EmQFbbxOfRCwyJs35", "client_two"))
a_map.append(MapKeyParis("mGcjH8Fv6U9y3BVF9H3Ypb9T", "client_six"))

a_upstream = Upstream(name="warehouse_inventory")
a_upstream.append("10.0.0.1:80")
a_upstream.append("10.0.0.2:80")
a_upstream.append("10.0.0.3:80")

b_upstream = Upstream(name="warehouse_pricing")
b_upstream.append("10.0.0.1:80")
b_upstream.append("10.0.0.2:80")
b_upstream.append("10.0.0.3:80")

a_location = Location(
    name="/api/warehouse/inventory",
    proxy=ReverseProxyStrategy('rewrite', '^ /_warehouse last')
)
a_location.set_var("$upstream", "warehouse_inventory")
b_location = Location(
    name="/api/warehouse/pricing",
    proxy=ReverseProxyStrategy('rewrite', '^ /_warehouse last')
)
b_location.set_var("$upstream", "warehouse_pricing")
c_location = Location(
    name="= /_warehouse",
    proxy=ReverseProxyStrategy('proxy_pass', 'http://$upstream$request_uri'),
    scope="internal"
)
c_location.set_var("$api_name", "Warehouse")

a_server = Server(name=nginx.namespace)
a_server.set_var("$api_name", "-")

nginx.append(a_map)
nginx.append(a_upstream)
nginx.append(b_upstream)
nginx.append(a_location)
nginx.append(b_location)
nginx.append(c_location)
nginx.append(a_server)

root_dir = "./dumps_dir"
nginx.dumps(root_dir)

License

This software is licensed under the MIT license

See License file

Changelog

0.1.7

  • Https by default

0.1.6

  • Add magic dump

0.1.2

  • Template exposed

0.1.1

  • Add server to support tls or not

0.1.0

  • Provide all in one configure file

0.0.8

  • Include template files

0.0.7

  • Include jinja2 templates

0.0.6

  • Add json error page configuration file

0.0.5

  • Add coverage

0.0.4

  • Clear dependency

0.0.3

  • Dumps nginx to files

0.0.2

  • Render conf with template

0.0.1

  • Initial public release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ddd-nginx, version 0.1.7
Filename, size File type Python version Upload date Hashes
Filename, size ddd-nginx-0.1.7.tar.gz (9.6 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page