A powerful websocket tunnel to transfer HTTP over Websocket.
- Support HTTP 1.x
- Duplex communication
- Automatic reconnection
- Compression: gzip
- Encryption: AES
- WebSocket Secure: wss, refer https://github.com/denji/golang-tls
- Chunked transfer encoding(specially for large file transfers)
- Support HTTP2
- Support websocket, which means Websocket over Websocket
- Mutiple websocket connection tunnels, improve transmission performance
- bin:
go get -u github.com/Wenchy/bifrost/cmd/bifrost
- conf:
wget https://raw.githubusercontent.com/Wenchy/bifrost/master/cmd/bifrost/conf.yaml
- script:
wget https://raw.githubusercontent.com/Wenchy/bifrost/master/cmd/bifrost/startstop.sh
cmd/bifrost/conf.yaml
server:
self_addr: :9098
peer_addr: ws://localhost:9099/ws
proxies:
- path: /*
target: http://localhost
log:
level: debug # debug, info, warn, error
dir: ./logs # log directory
This field directs the forwarded target to the websocket tunnel's peer side, it is like the proxy_pass
director in Nginx. If this header field is set, the proxies
item in conf.yaml will not be taken into consideration.
e.g.: X-Bifrost-Target: https://www.google.com
script: cmd/bifrost/startstop.sh
Action | Command |
---|---|
Start | ./startstop start |
Stop | ./startstop stop |
Restart | ./startstop restart |