Skip to main content

A super simple reverse proxy.

Project description

A super simple HTTP/1.1 proxy, with TLS and Let’s Encrypt support.

rproxy takes care of your Let’s Encrypt certificates, automatically renewing them. This is done by the excellent txacme library.

Install from PyPI:

$ pip install rproxy

Make a directory to store your certificates:

$ mkdir my-certs

Make a rproxy.ini:

[rproxy]
certificates=my-certs
http_ports=80
https_ports=443

[hosts]
mysite.com_port=8080

Then run it:

sudo twistd -u nobody -g nobody -n rproxy

This will start the server, drop permissions (setting the effective uid/guid to nobody), and will proxy incoming requests to mysite.com to localhost:8080. You can configure it further:

[rproxy]
certificates=my-certs
http_ports=80,8080
https_ports=443
clacks=true

[hosts]
mysite.com_port=8080
mysite.com_host=otherserver
mysite.com_onlysecure=True
mysite.com_proxysecure=True

myothersite.net_port=8081

This config will:

  • connect to https://otherserver:8080 as the proxied server for mysite.com, and only allow HTTPS connections to the proxy for this site

  • connect to http://localhost:8081 as the proxied server for myothersite.net, and allow HTTP or HTTPS connections.

General Config

  • http_ports – comma-separated list of numerical ports to listen on for HTTP connections.

  • https_ports – comma-separated list of numerical ports to listen on for HTTPS connections.

  • certificates – directory where certificates are kept.

  • clacks – Enable X-Clacks-Overhead for requests.

Hosts Config

  • <host>_onlysecure – enforce HTTPS connections. If not set, or set to False, it will allow HTTP and HTTPS connections.

  • <host>_proxysecure – connect to the proxied server by HTTPS. If not set, or set to False, it will connect over HTTP.

  • <host>_port – The port of the proxied server that this proxy should connect to.

  • <host>_host – the hostname/IP of the server to proxy to.

  • <host>_sendhsts – send HSTS headers on HTTPS connections.

  • <host>_wwwtoo – match www too.

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

rproxy-18.6.0.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

rproxy-18.6.0-py2-none-any.whl (7.8 kB view details)

Uploaded Python 2

File details

Details for the file rproxy-18.6.0.tar.gz.

File metadata

  • Download URL: rproxy-18.6.0.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for rproxy-18.6.0.tar.gz
Algorithm Hash digest
SHA256 78bd6abde54bf4bbc3bb5ad4b76603598ddc2b84791647ef9f5f995b0810187c
MD5 29009731c24143e6ab2c9388f14e0e26
BLAKE2b-256 92147a2f559c99e3c6b8fd79128a6406c823a285dbe102c2a39deeca88a872a8

See more details on using hashes here.

File details

Details for the file rproxy-18.6.0-py2-none-any.whl.

File metadata

File hashes

Hashes for rproxy-18.6.0-py2-none-any.whl
Algorithm Hash digest
SHA256 793e024214d77d0206a1ec2220941b417e717e7d8acdfd207379ee9b0acd6dee
MD5 2ea81aab1bb796d45a3c82b8f74765f9
BLAKE2b-256 7ce870cdda3ca92a4c7d1f77a6f77c1efc65144afcce21eecc464f7cd9b63b80

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