Open
Description
Hi Ocelot Team,
Please give advice for my current issue when using Load Balance configuration on Ocelot Gateway. My websocket implementation is for Microsof SignalR on my web client
## Expected Behavior / New Feature
When one of server is down, not causing error and able redirect request to connect websocket to another server
Actual Behavior / Motivation for New Feature
1 Backend Server down causing Bad Gateway request and unable to a connect websocket to another backend server
Steps to Reproduce the Problem
- Server A installed with 1 Backend service (using .net core 3.1) and Gateway (Ocelot) service
- Server B installed with 1 Backend service
- When All service running, client able to connect websocket using gateway
- When Backend service is turned off on Server A and backend in server B is running, client unable to connect websocket via gateway
- When Backend service is turned off on Server B and backend in server A is running, client unable to connect websocket via gateway
- Http request is running fine.
Specifications
- Version: Ocelot 16.0.1
- Platform: .net Core 3.1
- Subsystem:
- Please see my config on my ocelot.json
{
"Routes": [
{
"DownstreamPathTemplate": "/OPUIAPI/api/{everything}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "bthsa1163.infineon.com",
"Port": 8001
},
{
"Host": "bthtsa1030.infineon.com",
"Port": 8000
}
],
"UpstreamPathTemplate": "/gateway/opui/api/{everything}",
"UpstreamHttpMethod": [
"Get",
"Put",
"Post"
],
"AuthenticationOptions": null,
"FileCacheOptions": {
"TtlSeconds": 0
},
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
},
{
"DownstreamPathTemplate": "/eqstatoui/api/{everything}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "bthsa1163.infineon.com",
"Port": 8000
}
],
"UpstreamPathTemplate": "/gateway/eqstat/api/{everything}",
"UpstreamHttpMethod": [
"Get",
"Put",
"Post"
],
"AuthenticationOptions": null,
"FileCacheOptions": {
"TtlSeconds": 0
},
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
},
{
"DownstreamPathTemplate": "/eqstatoui/signalr",
"DownstreamScheme": "ws",
"DownstreamHostAndPorts": [
{
"Host": "bthsa1163.infineon.com",
"Port": 8000
}
],
"UpstreamPathTemplate": "/gateway/eqstat/signalr",
"UpstreamHttpMethod": [
"Get",
"Put",
"Post",
"Delete",
"Options"
],
"AuthenticationOptions": null,
"FileCacheOptions": {
"TtlSeconds": 0
},
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
},
{
"DownstreamPathTemplate": "/eqstatoui/signalr/{catchAll}",
"DownstreamScheme": "ws",
"DownstreamHostAndPorts": [
{
"Host": "bthsa1163.infineon.com",
"Port": 8000
}
],
"UpstreamPathTemplate": "/gateway/eqstat/signalr/{catchAll}",
"UpstreamHttpMethod": [
"Get",
"Put",
"Post",
"Delete",
"Options"
],
"AuthenticationOptions": null,
"FileCacheOptions": {
"TtlSeconds": 0
},
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
},
{
"DownstreamPathTemplate": "/OPUIAPI/signalr",
"DownstreamScheme": "ws",
"DownstreamHostAndPorts": [
{
"Host": "bthsa1163.infineon.com",
"Port": 8001
},
{
"Host": "bthtsa1030.infineon.com",
"Port": 8000
}
],
"UpstreamPathTemplate": "/gateway/opui/signalr",
"UpstreamHttpMethod": [
"Get",
"Put",
"Post",
"Delete",
"Options"
],
"AuthenticationOptions": null,
"FileCacheOptions": {
"TtlSeconds": 0
},
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
},
{
"DownstreamPathTemplate": "/OPUIAPI/signalr/{catchAll}",
"DownstreamScheme": "ws",
"DownstreamHostAndPorts": [
{
"Host": "bthsa1163.infineon.com",
"Port": 8001
},
{
"Host": "bthtsa1030.infineon.com",
"Port": 8000
}
],
"UpstreamPathTemplate": "/gateway/opui/signalr/{catchAll}",
"UpstreamHttpMethod": [
"Get",
"Put",
"Post",
"Delete",
"Options"
],
"AuthenticationOptions": null,
"FileCacheOptions": {
"TtlSeconds": 0
},
"LoadBalancerOptions": {
"Type": "LeastConnection"
}
}
],
"GlobalConfiguration": {
"BaseUrl": "https://localhost:5011"
}
}
Metadata
Assignees
Labels
POC Health ChecksOcelot feature: Load BalancerBug or feature would be accepted as a PR or is being worked onIdentified as a potential bugNot actively being worked on. If you plan to contribute, please drop a note.Likely over a week of development effortLikely a few days of development effortProposal for a new functionality in Ocelot