What is It?
CPRoxy is a reverse web proxy service and a command line client utility for creating and managing connections. In simple terms, it allows you to securely serve web content from any internet connected computer.
Components
CRProxy consists of three main components: the hub server, the command-line client, and the proxy-servers.
Hub
The hub contains the state of the application: your account, api-keys, subscription, etc. It also stores the data needed by the proxy-servers, including configuration data and certificates.
Proxy-Server
Each proxy-server is a member of a cluster of machines sharing a public
address, for example de1.crproxy.com
. A proxy-server accepts
connections from command-line clients, and from users on behalf on our
clients.
Command-Line Client
The command-line client creates and maintains connections to a group of
proxy-servers at a given address, for
example de1.crproxy.com
. It creates multiplexed TCP tunnels
between the client's computer and the proxy-servers.
How Does it Work?
To illustrate the working of CRProxy, imagine that you have a web server
running locally at http://localhost:8000
, and run the
client:
crproxy proxy http://localhost:8000/
Since we haven't specified a hostname, the client will print out a
randomly-generated public URL After connecting, something
like https://abcd-i4k5dsu2.de1.crproxy.com
. This the the
address at which users can find your web server.
The command line client will open an encrypted TCP tunnel to each of the
proxy-servers sharing the de1.crproxy.com
hostname.
The proxey-servers route incoming requests to your public hostname to the client, which in turn sends them to your web server.
The diagram below illustrates how data flows between your users and your local web server.