I am new to Traefik. I am trying to use it to help us solve a performance issue that we have.
I have a system running on a windows server, that receives traffic from https, and distributes it to 3 services:
- activemq, identified by path
/mq
. Handling long running socket connections. - internal service, identified by path
/server
- main app, running on apache 32bit, getting the rest of the traffic.
It used to run on apache, but we run into a performance issue, since apache 32bit can't handle more than ~600 socket connections, coupled with the ssl termination.
We are now trying to check performance with Traefik. It seems to handle better the socket connections, but we are getting timeouts from for the apache connections.
Assuming that the apache can handle the traffic (we have tested it stand alone with 10x the amount of traffic), anyone has experience with similar setup and can estimate how many connections we should be able to expect?
Our yaml configuration is below. Anything that we can do to improve the performance?
[http.routers.dashboard]
entryPoints = ["https"]
service = "api@internal"
rule = "Host(`example.com`) && PathPrefix(`/dashboard`)"
[http.routers.dashboard.tls]
[http.routers.mq]
entryPoints = ["https"]
service = "mq"
rule = "Host(`example.com`) && PathPrefix(`/mq`)"
middlewares = ["remove-mq-prefix"]
[http.routers.mq.tls]
[http.routers.server]
entryPoints = ["https"]
service = "server"
rule = "Host(`example.com`) && PathPrefix(`/server`)"
middlewares = ["remove-server-prefix", "normalize-path"]
[http.routers.server.tls]
[http.routers.web]
entryPoints = ["https"]
service = "web"
rule = "Host(`example.com`)"
[http.routers.web.tls]
[http.routers.webclient]
entryPoints = ["https"]
service = "webclient"
rule = "Host(`example.com`) && PathPrefix(`/webclient`)"
[http.routers.webclient.tls]
[[http.services.mq.loadBalancer.servers]]
url = "http://127.0.0.1:43020/"
[[http.services.server.loadBalancer.servers]]
url = "http://127.0.0.1:43000/"
[[http.services.web.loadBalancer.servers]]
url = "http://127.0.0.1:8080/"
[[http.services.webclient.loadBalancer.servers]]
url = "http://127.0.0.1:8080"
[[tls.certificates]]
certFile = "example.com.crt"
keyFile = "example.com.key"
[http.middlewares.remove-server-prefix.stripPrefix]
prefixes = ["/server", "/server/"]
[http.middlewares.remove-mq-prefix.stripPrefix]
prefixes = ["/mq"]
[http.middlewares.normalize-path.replacePathRegex]
regex = "/+"
replacement = "/"