Skip to main content

Relay for HTTP messages (reverse proxy)

Project description

http-relay

Relay HTTP requests from localhost to a remote host (act as reverse HTTP proxy).

This HTTP relay properly processes also the nonstandard HTTP responses like ICY 200 OK produced by Shoutcast or NTRIP streaming servers.

The relay works properly with hostnames, IPv4 and IPv6 addresses. IPv6 addresses can be specified with or without [].

Usage

usage: http-relay [-h] [-n NUM_THREADS] [-b BUFFER_SIZE] [-t SIGKILL_TIMEOUT] [-s] host [port] [local_port] [local_addr]

positional arguments:
  host                  The remote host to connect to (e.g. "cvut.cz")
  port                  The remote host's port to connect to (e.g. 80).
  local_port            The local port to be used for the relay. If left out, will be the same as remote port.
  local_addr            Local interface (IP or hostname) to run the relay on. By default, it runs on all IPv4 interfaces (0.0.0.0).

optional arguments:
  -h, --help            show this help message and exit
  -n NUM_THREADS, --num-threads NUM_THREADS
                        Number of threads servicing the incoming requests.
  -b BUFFER_SIZE, --buffer-size BUFFER_SIZE
                        Size of the buffer used for reading responses. Generally, a larger buffer should be more efficient, but if it is too large, the local clients may time out before they receive any data.
  -t SIGKILL_TIMEOUT, --sigkill-timeout SIGKILL_TIMEOUT
                        If specified, the relay will be sigkilled in this number of seconds.
  -s, --sigkill-on-stream-stop
                        If True, --sigkill-timeout will not be counted when no requests are active, and during requests, each successful data transmission will reset the timeout. This can be used to detect
                        stale streams if you expect an application to be constantly receiving data.

Python module

This package also provides Python module http_relay. You can start the relay as a part of your application like this:

from http_relay import run

# ...

run("0.0.0.0", 80, "cvut.cz", 80)

Examples

http-relay cvut.cz 80 8080  # redirects local port 8080 to cvut.cz:80
http-relay cvut.cz 2101  # redirects local port 2101 to cvut.cz:2101
http-relay cvut.cz 80 8080 localhost  # redirects localhost:8080 to cvut.cz:80 (i.e. no external access to the 8080 port)

http-relay stream.cz 2101 -t 10 -s  # redirects local port 2101 to stream.cz and kills the relay after 10 secs if a stream is being downloaded and becomes stale

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

http-relay-2.1.2.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

http_relay-2.1.2-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file http-relay-2.1.2.tar.gz.

File metadata

  • Download URL: http-relay-2.1.2.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for http-relay-2.1.2.tar.gz
Algorithm Hash digest
SHA256 5f09ca3e8ba04bf483b9e6ba3afd4045b926108dec35d59abe8d9a5d6e794f3c
MD5 821426a14d56382ab88e20fb467d310a
BLAKE2b-256 175c79d0e1c9655ed0931f13ee6068be28d3c430ee855f2e4781927df1ec60d2

See more details on using hashes here.

File details

Details for the file http_relay-2.1.2-py3-none-any.whl.

File metadata

  • Download URL: http_relay-2.1.2-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for http_relay-2.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0ad42dfd4f44320bafe9e44127a1a5a2c2b70551ac345d0adba3c7f4ad561b2f
MD5 120cd3a36af09845d32951c4694f2d7d
BLAKE2b-256 7728d09ee0c8708bd5d922eb277a7aa0c63a2847a70e31201c386351a30a8cbb

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