summaryrefslogtreecommitdiff
path: root/README.md
blob: c06aa296137fbd3e61e6a2bad704c82d26afb1f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
## hprox

hprox is a lightweight HTTP/HTTPS proxy server.

### Features

* Basic HTTP proxy support, including HTTP GET/HTTP CONNECT support.
* Simple password authentication.
* HTTPS encryption support, requires a valid certificate. Supports TLS 1.3 and
  HTTP 2 out of box. This mode is also known as SPDY Proxy.
* TLS SNI validation in HTTPS mode. Blocks connections with wrong domain name.
* Provide PAC file for easy client side configuration. Supports Chrome and Firefox.
* Can run upon any Haskell Web Application with `wai` interface. Defaults to
  a dumb application which simulate the default empty page from Apache.
* websocket redirection. Compatible with v2ray-plugin for shadowsocks.
* Reverse proxy support. Redirect requests to a fallback server.

Use `hprox --help` to list the options for further details.

### Installation

Only Linux and macOS are supported. [stack](https://docs.haskellstack.org/en/stable/README/#how-to-install) is required to build `hprox`.

```sh
stack install
```

### Known Issue

* Only HTTP server are supported for websocket and reverse proxy redirection.
* Passwords are stored in plain text for now, please avoid using existing password.