CRProxy Overview

By David Lee on 2022-06-20

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.