Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Krast
@krast
hello, I try gobetween v0.6.0. tcp loadbalance roundrobin mode not work.

[servers.krast]
protocol = "tcp"
bind = "0.0.0.0:3000"
balance = "roundrobin"

max_connections = 10000
client_idle_timeout = "10m"
backend_idle_timeout = "10m"
backend_connection_timeout = "2s"

[servers.krast.discovery]
kind = "static"
static_list = [
"127.0.0.1:4000 weight=1",
"127.0.0.1:2000 weight=1"
]

[servers.krast.healthcheck]
fails = 1
passes = 1
interval = "1s"
timeout="1s"
kind = "ping"
ping_timeout_duration = "500ms"

I expect 4000,2000 next round 4000,2000 again and again. but not working as expected.
Can I use gobetween instead of haproxy?
Krast
@krast
image.png
My test like this.
simple http backend.
Illarion Kovalchuk
@illarion
@krast yes. I confirm the bug. Will be fixed soon in 0.6.1
Dave Cottlehuber
@dch
I see you have FreeBSD binary available, but I'd like to build from sources and include in FreeBSD ports tree. I tried some minor modifications but failed to get it working.
if you're able to help further I will open an issue on github to discuss
Dave Cottlehuber
@dch
dch@wintermute /r/gobetween> git commit -am 'hack FreeBSD support'
[master 40b5817] hack FreeBSD support
 1 file changed, 1 insertion(+)
dch@wintermute /r/gobetween> gsh
commit 40b5817fbe7825f815569e0e837291cc58ab7e25 (HEAD -> master)
Author: Dave Cottlehuber <dch@skunkwerks.at>
Date:   Fri Sep 7 10:56:05 2018 +0000

    hack FreeBSD support

diff --git a/Makefile b/Makefile
index 6976501..c729bc5 100644
--- a/Makefile
+++ b/Makefile
@@ -88,6 +88,7 @@ dist:
        @#             os    arch  cgo ext
        @for arch in "linux   386  1      "  "linux   amd64 1      "  \
                                 "windows 386  0 .exe "  "windows amd64 0 .exe "  \
+                                "freebsd 386  1      "  "freebsd amd64 1      "  \
                                 "darwin  386  0      "  "darwin  amd64 0      "; \
        do \
          set -- $$arch ; \
dch@wintermute /r/gobetween> gmake deps build
rm -rf ./vendor/src
rm -rf ./vendor/pkg
rm -rf ./vendor/bin
go get -v github.com/burntsushi/toml
github.com/burntsushi/toml (download)
go get -v github.com/miekg/dns
github.com/miekg/dns (download)
go get -v github.com/fsouza/go-dockerclient
github.com/fsouza/go-dockerclient (download)
github.com/docker/docker (download)
github.com/docker/go-units (download)
github.com/sirupsen/logrus (download)
Fetching https://golang.org/x/crypto/ssh/terminal?go-get=1
Parsing meta tags from https://golang.org/x/crypto/ssh/terminal?go-get=1 (status code 200)
get "golang.org/x/crypto/ssh/terminal": found meta tag get.metaImport{Prefix:"golang.org/x/crypto", VCS:"git", RepoRoot:"https://go.googlesource.com/crypto"} at https://golang.org/x/crypto/ssh/terminal?go-get=1
get "golang.org/x/crypto/ssh/terminal": verifying non-authoritative meta tag
Fetching https://golang.org/x/crypto?go-get=1
Parsing meta tags from https://golang.org/x/crypto?go-get=1 (status code 200)
golang.org/x/crypto (download)
Fetching https://golang.org/x/sys/unix?go-get=1
Parsing meta tags from https://golang.org/x/sys/unix?go-get=1 (status code 200)
get "golang.org/x/sys/unix": found meta tag get.metaImport{Prefix:"golang.org/x/sys", VCS:"git", RepoRoot:"https://go.googlesource.com/sys"} at https://golang.org/x/sys/unix?go-get=1
get "golang.org/x/sys/unix": verifying non-authoritative meta tag
Fetching https://golang.org/x/sys?go-get=1
Parsing meta tags from https://golang.org/x/sys?go-get=1 (status code 200)
golang.org/x/sys (download)
github.com/Nvveen/Gotty (download)
github.com/docker/docker/pkg/mount
# github.com/docker/docker/pkg/mount
vendor/src/github.com/docker/docker/pkg/mount/mountinfo_freebsd.go:40:24: undefined: p
gmake: *** [Makefile:62: deps] Error 2
Dave Cottlehuber
@dch
updating the docker/docker dependency in vendors just caused an explosion of go errors
Illarion Kovalchuk
@illarion
Interesting
I managed to build it for freebsd
just set cgo_enabled to 0, like this:
"freebsd 386 0 " "freebsd amd64 0 "
Dave Cottlehuber
@dch
illarion: I still get this (on master branch BTW)
../go/src/github.com/docker/docker/pkg/mount/mountinfo_freebsd.go:40:24: undefined: p
is it possible you've different stuff in vendor ?
Illarion Kovalchuk
@illarion
I cleaned vendor
make clean
make deps
make dist
and I get freebsd build
Illarion Kovalchuk
@illarion
But you're right, the freebds dependency has an error - it uses undefined variable 'p'
The question is why crosscompilation doesn't use it
bintut @bintut waves
Marvin Pascual
@bintut
I wonder how to support multiple groups of backends in gobetween-0.6.0
Is it possible? Say, the first backend group is WordPress, the second backend group is nginx w/ static contents, and so on and so forth...
Illarion Kovalchuk
@illarion
@bintut so what is your question?
Marvin Pascual
@bintut
How to configure gobetween to be the reverse proxy for multiple groups of backend services?
Does gobetween support SNI for multiple backend services?
Illarion Kovalchuk
@illarion
yes sni is supported
it should be described in documentation on gobetween.io and in wiki of github project
Marvin Pascual
@bintut
I'm sorry but I can't find in the documentation how to configure multiple backends on a single gobetween
Illarion Kovalchuk
@illarion
see discovery section
Marvin Pascual
@bintut
gobetween will be listening on a single HTTPS port. How can I differentiate between different backend services? How gobetween decides that the incoming traffic is for backendA and not for backendB, and so on and so forth?
Illarion Kovalchuk
@illarion
using sni

kind = "static"

static_list = [ # (required) [

"localhost:8000 weight=5", # "<host>:<port> weight=<int>" weight=1 by default

"localhost:8001 sni=www.foo.com" # ]

]

sorry for formatting, it is hard to copy paste examples using phone
take a look at config.toml
pietrodm
@pietrodm
Dear community, i'm setting up GoBetween 0.6 under Win2012 r2 core. We have a issue in balancing 2 web servers ad the developer asked if possible to set affinty / persistence. can someone help with this item cos i did not find anything on GoBetween docs . Thank You in advance
Hilko Lantinga
@HilkoLantinga
I've got a TCP/UDP service with port sharing. Is there a way to let UDP follow the TCP persistence?
jr-ps
@jr-ps
Hi, I'm proxying UDP, with no healthchecks and both client_ and backend_idle_timeouts set to 1m. I have two servers configured statically. I notice if I stop the service on one of them, gobetween notices within a few seconds and starts sending the traffic to the other one. The error logged is (udp/server/session): Failed to read from backend: read udp 192.168.60.1:35660->192.168.60.12:6121: read: connection refused. This is great, I'm just wondering what specifically the failover behavior is. Since it's UDP there's no session or ACKs, etc to keep track of at the transport layer, and I'm not sure what connection refused means in the context of UDP. Thanks.
jr-ps
@jr-ps
I think I can answer my own question: the read from the udp connection failed because it received an ICMP port unreachable message on it, because traffic was being sent to the backend on the closed port, which responded with the icmp
which prompts gobetween to close that session and try again on the other server
Novanet
@Novanet-
Encountering an issue with debug logging statements in v0.6.1 yyyar/gobetween#202
Shantanu Gadgil
@shantanugadgil
Yay! 0.7.0 released! :D
Gr33nbl00d
@Gr33nbl00d
Question regarding tls termination: is mutual tls supporter? Are there plans to support certificate revocation lists?
gimmic
@gimmic
Hmm.