Skip to main content

A python implementation of configurable-http-proxy

Project description

configurable-http-proxy

This is a pure python implementation of the configurable-http-proxy written in nodejs. It is meant to be a drop in replacement.

Install

Prerequisite: Python 3.6+

pip install configurable-http-proxy

Feature support

The following items are supported:

  • Proxying for Websocket and HTTP requests
  • Configuring the proxy using API requests
  • Auth token for API requests
  • Error management using error_path and error_target
  • Prepend path or include prefix
  • Timeouts
  • X-Forward related headers
  • Custom Headers
  • Customizable storage backends
  • PID file writing
  • Logging
  • Configurable storage backend

The following options are additional (not available in nodejs CHP currently):

  • Ready to use DBMS storage backend

The following options are not supported (yet):

  • SSL for proxy, client, API is not available (--ssl-*, --api-ssl-*, --client-ssl-*, --insecure)
  • Redirecting: --redirect-port and --redirect-to
  • Change Origin: --change-origin
  • Rewrites in Location header: --protocol-rewrite and --auto-rewrite
  • Metrics server: --metrics-port and --metrics-ip

Database-backed storage backend

Using a SQL DBMS instead of the default in-memory store enables chp to be replicated in a High Availability scenario.

To use a SQL DBMS as the storage backend:

  1. Install DBMS support
$ pip install configurable-http-proxy[sqla]
  1. Set the CHP_DATABASE_URL env var to any db URL supported by SQLAlchemy. The default is sqlite:///chp.sqlite.
$ export CHP_DATABASE_URL="sqlite:///chp.sqlite"
$ configurable-http-proxy --storage-backend configurable_http_proxy.dbstore.DatabaseStore
  1. Optionally you may set the table name by setting the CHP_DATABASE_TABLE. The default is 'chp_routes'
$ export CHP_DATABASE_TABLE="chp_routes"

Project details


Download files

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

Source Distribution

configurable-http-proxy-0.3.0.tar.gz (31.2 kB view details)

Uploaded Source

Built Distribution

configurable_http_proxy-0.3.0-py2.py3-none-any.whl (23.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file configurable-http-proxy-0.3.0.tar.gz.

File metadata

File hashes

Hashes for configurable-http-proxy-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8f5f82377ac699549ab618892addfbaa0052cb2dc7c0aed1034bc88e4953b555
MD5 63b376e23a76f6d5a49025d247bf1b19
BLAKE2b-256 7bc1812ca9b578a419729e2e5766ce18c28b4b1a5a55623c54db0e43b33f5d6b

See more details on using hashes here.

File details

Details for the file configurable_http_proxy-0.3.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for configurable_http_proxy-0.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f75ca53ed7ffe7592b212cbbea6f66a41e2f0d8bf89edabb9c47f5d25a5e064f
MD5 c1690d5c0805d3bb5719ca8fbd54ea7d
BLAKE2b-256 06912ae0fd55ee9c414f8aecd5ea1e8e01a5fac973a02259e60177c1179dbbaa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page