Skip to main content

A server for rabbit tunnel

Project description

rabbit-tunnel-server

A python-based server implementation for rabbit-tunnel.

rt-server -sd rtunnel.io

Requirements

  • Python 3.7 - 3.10

Current Limitations

  • No unit tests
  • No public APIs for control
  • No authentification
  • No horizontal scaling

Reverse proxy such as nginx is highly recommended to overcome the limitations below. The example configuration of nginx webserver is available at assets/nginx.conf.

  • Robustness to malformed HTTP requests
  • HTTP/2
  • 1 Better handling of HTTP keep-alive session
  • 2 HTTP response modification

1 rabbit-tunnel-server uses the host header in HTTP requests to determine the target rabbit-tunnel instance, but in a HTTP keep-alive session, multiple HTTP requests with different host header can come in the same TCP connection. In that case, rabbit-tunnel-server uses the first HTTP request to determinte the target rabbit-tunnel instance and assume that subsequent HTTP requests will have the same target. To overcome this limitation, you can set-up the reverse proxy to initiate new TCP connection when the host header is changed, or even can disable HTTP keep-alive session between the reverse proxy and rabbit-tunnel-server (which is the default behavior of reverse proxies such as nginx).

2 rabbit-tunnel-server does not interpret any HTTP responses and proxies them as it is. Therefore, for example, the host header in HTTP response may not have the value that clients requested unless tunneled webserver explicitly set them. To overcome this limitation, you can set-up the reverse proxy to properly modify the host header.

Protocol Specification

TBD

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

rabbit-tunnel-server-0.8.tar.gz (17.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rabbit_tunnel_server-0.8-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file rabbit-tunnel-server-0.8.tar.gz.

File metadata

  • Download URL: rabbit-tunnel-server-0.8.tar.gz
  • Upload date:
  • Size: 17.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for rabbit-tunnel-server-0.8.tar.gz
Algorithm Hash digest
SHA256 fee3add40cbd6199d45fb3656e0c105ef160e58b34f2e3cb1631be69703ff749
MD5 6f9cdbf43d7d8bef89941f747e69b617
BLAKE2b-256 1bc3c6454453735fc088091cc5b55f001e1b2f6a68e6de09a0041fb94ea3f544

See more details on using hashes here.

File details

Details for the file rabbit_tunnel_server-0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for rabbit_tunnel_server-0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 70f5f10f3e3d4e9c493601af3842af402dfb5681fc4d1be1bb077355c24080e2
MD5 0d3ba65c2432f54338fed1cfbf468692
BLAKE2b-256 0ca363dd10934663babdeb36d546026057b34d07ed24953e458ff57612c72a1e

See more details on using hashes here.

Supported by

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