In case you would need more decent playground just let me know and I can provide public docker image where I'm going to cut all security info from docker-compose.
Thank you in advance.
Appreciate a lot because of we already loose like 100ish hours as a small team on making this works but without success. So, this is last try before we start figuring out backup plans with nginx.
I have been using Traefik v1 and WebSockets worked like a charm. I didn't need to set up things, except to add a label for WSS to use HTTPS.
I have tried various ways, I even tried to add Nginx as the middle layer between Traefik and SignalR
Traefik --> Nginx --> Redis --> SignalR but I couldn't manage it.
I had to move back to v1 but I really want to move to new Traefik..
@almird What is your problem with signalr ?
What doesn't work, Error message ? It's not clear in your post.
I get it working with traefik 1.x and 2.1, but with kubernetes so my configuration will not help you.
For me the difficulties was related to multi replicate which need specific configuration.
It need two things :
If redis backplane, you also need to enable sticky session
And in this case you only want the sticky session to be applied to the signalr part.
For kubernetes users, an exemple configuration for separate signalr configuration and enable sticky session on it.
You will need traefik 2.1 or greater as sticky session definition for kubernetes has been introduced in this version.
Since signalR connection is contained of: http POST request for negotiation and WS connection. I can see that http POST request passes correctly but WS is constantly repeating which leads me to the conclusion that something isn't OK with redis sticky sessions.
So, please you would help me a lot if you take a look into my redis docker image labels. Thanks in advance.
Bellow you could see this weird behavior. The thing is: It constantly retry to negotiate and to establish ws connection with sucess but it repeat it again again and again.
I haven't used signalR, but had a similar issue with a self-contained backend that uses websockets. I resolved my issue by explicitly configuring the upstream server to accept proxy protocol.
In the end of the day... When I finally found some time I figured out that it was not due to signalR or WS specifics, but it's as usual "human error"
I was laughing when I figured out real reason why it broke...
Didn't create signalr dedicated network in traefik yaml config but used it in service yaml config for docker swarm.
All in all when I putted it in traefik yaml config everything works like a charm