Wrap up net.Conn with go-proxyproto.Conn
Wrap up connection into proxy-protocol handler. See examples/proxy-protocol/haproxy* to test it Signed-off-by: steigr <me@stei.gr>
This commit is contained in:
parent
158ab243b2
commit
b4e0bbf0a4
4 changed files with 80 additions and 4 deletions
13
examples/proxy-protocol/haproxy.cfg
Normal file
13
examples/proxy-protocol/haproxy.cfg
Normal file
|
@ -0,0 +1,13 @@
|
|||
global
|
||||
daemon
|
||||
maxconn 4
|
||||
|
||||
defaults
|
||||
mode tcp
|
||||
timeout server 3600
|
||||
timeout client 3600
|
||||
timeout connect 5
|
||||
|
||||
listen ircd-demo
|
||||
bind *:9667
|
||||
server goircd-pv2 127.0.0.1:6667 send-proxy-v2
|
54
examples/proxy-protocol/haproxy.sh
Executable file
54
examples/proxy-protocol/haproxy.sh
Executable file
|
@ -0,0 +1,54 @@
|
|||
#!/usr/bin/env bash
|
||||
[[ -f examples/proxy-protocol/haproxy.pid ]] && rm examples/proxy-protocol/haproxy.pid
|
||||
fail() { echjo "$*"; exit 1; }
|
||||
|
||||
set -x
|
||||
which haproxy || fail haproxy is missing
|
||||
which socat || fail socat is missing
|
||||
|
||||
test -f goircd || fail goircd is missing
|
||||
|
||||
haproxy_cfg() {
|
||||
cat<<__cfg
|
||||
global
|
||||
daemon
|
||||
maxconn 4
|
||||
|
||||
defaults
|
||||
mode tcp
|
||||
timeout server 3600
|
||||
timeout client 3600
|
||||
timeout connect 5
|
||||
|
||||
listen ircd-demo
|
||||
bind *:9667
|
||||
server goircd-pv2 127.0.0.1:6667 $1
|
||||
__cfg
|
||||
}
|
||||
|
||||
./goircd &
|
||||
trap "kill $!" EXIT
|
||||
|
||||
# direct connect
|
||||
haproxy_cfg > examples/proxy-protocol/haproxy.cfg
|
||||
haproxy -f examples/proxy-protocol/haproxy.cfg -c
|
||||
haproxy -f examples/proxy-protocol/haproxy.cfg -p examples/proxy-protocol/haproxy.pid
|
||||
(sleep 1; echo "CONNECT" ) | socat stdin tcp:127.0.0.1:9667
|
||||
kill $(cat examples/proxy-protocol/haproxy.pid)
|
||||
|
||||
|
||||
# proxy v1 protocol
|
||||
haproxy_cfg send-proxy > examples/proxy-protocol/haproxy.cfg
|
||||
haproxy -f examples/proxy-protocol/haproxy.cfg -c
|
||||
haproxy -f examples/proxy-protocol/haproxy.cfg -p examples/proxy-protocol/haproxy.pid
|
||||
(sleep 1; echo "CONNECT" ) | socat stdin tcp:127.0.0.1:9667
|
||||
kill $(cat examples/proxy-protocol/haproxy.pid)
|
||||
|
||||
# proxy v2 protocol
|
||||
haproxy_cfg send-proxy-v2 > examples/proxy-protocol/haproxy.cfg
|
||||
haproxy -f examples/proxy-protocol/haproxy.cfg -c
|
||||
haproxy -f examples/proxy-protocol/haproxy.cfg -p examples/proxy-protocol/haproxy.pid
|
||||
(sleep 1; echo "CONNECT" ) | socat stdin tcp:127.0.0.1:9667
|
||||
kill $(cat examples/proxy-protocol/haproxy.pid)
|
||||
|
||||
rm examples/proxy-protocol/haproxy.pid
|
Loading…
Add table
Add a link
Reference in a new issue