@hackage hprox0.1.0.2
a lightweight HTTP proxy server, and more
Categories
License
Apache-2.0
Maintainer
bjin@ctrl-d.org
Links
Versions
Installation
Dependencies (0)
- async >=2.2
- base >=4.12 && <5
- base64-bytestring >=1.0
- binary >=0.8
- bytestring >=0.10
- case-insensitive >=1.2 Show all…
Dependents (0)
Package Flags
static
(off by default)
Enable static build
hprox
hprox is a lightweight HTTP/HTTPS proxy server.
Features
- Basic HTTP proxy functionality.
- Simple password authentication.
- TLS encryption (requires a valid certificate). Supports TLS 1.3 and HTTP 2, also known as SPDY Proxy.
- TLS SNI validation (blocks all clients with invalid domain name).
- Provide PAC file for easy client side configuration (supports Chrome and Firefox).
- Websocket redirection (compatible with v2ray-plugin).
- Reverse proxy support (redirect requests to a fallback server).
- Implemented as a middleware, compatible with any Haskell Web Application built with
waiinterface. Defaults to fallback to a dumb application which simulate the default empty page from Apache.
Installation
hprox should build and work on all unix-like OS with ghc support, but it's only
been tested on Linux and macOS.
stack is recommended to build hprox.
stack setup
stack install
Usage
Use hprox --help to list options with detailed explanation.
- To run
hproxon port 8080, with simple password authentication:
echo "user:pass" > userpass.txt
hprox -p 8080 -a userpass.txt
- To run
hproxwith TLS encryption on port 443, with certificate ofexample.comobtained with certbot:
hprox -p 443 -s example.com:/etc/letsencrypt/live/example.com/fullchain.pem:/etc/letsencrypt/live/example.com/privkey.pem
Browsers can be configured with PAC file URL https://example.com/get/hprox.pac.
- To work with
v2ray-plugin, with fallback page to ubuntu archive:
v2ray-plugin -server -localPort 8080 -mode websocket -host example.com -remotePort xxxx
hprox -p 443 -s example.com:fullchain.pem:privkey.pem --ws 127.0.0.1:8080 --rev archive.ubuntu.com:80
Clients will be able to connect with plugin option tls;host=example.com.
Known Issue
- Only HTTP servers are supported as websocket and reverse proxy redirection destination.
- Passwords are currently stored in plain text, please set permission accordingly and avoid using existing password.
License
hprox is licensed under the Apache license. See LICENSE file for details.