We have been using a Barracuda Load Balancer for a few years now, and I am not entirely happy with it...so I was looking at HAProxy as a load balancing solution. However, not having had any experience with them...I am in need of some help/verification with the configuration.
I have looking through other posts in Jamf Nation, specifically this one HAProxy configuration for JSS Load Balancing our cluster and this one HAProxy Load Balancer help, and I have also looked at the HAProxy configuration guide. I think I have an idea of what I am doing, but I just wanted to reach out to confirm...
Our load balanced Jamf environment is as follows...
1 x Jamf Pro Cluster Master (not load balancer in the cluster)
3 x Jamf Pro Cluster Nodes (behind load balancer)
I want to start basic, and I can add from there, so this is the configuration I have added to the haproxy.cfg file...
##### Jamf Pro Load Balancing Configuration #####
listen stats # Goto port 9999 for stats
mode http
bind *:9999
stats enable
stats uri /
frontend jamfpro-lb # Jamf Pro Load Balancing
mode http
bind *:8080 # Jamf non-SSL port
bind *:8443 ssl crt /path/to/cert/with/no/key.pem
timeout client 10000
default_backend jamfpro-cluster
backend jamfpro-cluster #Jamf Pro Cluster
mode http
option forwardfor
option http-server-close
balance leastconn
option httpchk
fullconn 1100
cookie SRVSTICKY insert indirect nocache # Use session cookie to keep on same server
server jamf-pro02 IP_Address:8080 check cookie jamf-pro02 inter 2000 fall 5
server jamf-pro03 IP_Address:8080 check cookie jamf-pro03 inter 2000 fall 5
server jamf-pro04 IP_Address:8080 check cookie jamf-pro04 inter 2000 fall 5
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
Is there anything else that would be beneficial to add? It seems pretty straight forward. The main thing I am having issues with at this point, is figuring out how to add the wildcard SSL certificate to HAProxy. So if anyone has done that with HAProxy, I would love to know...I understand the premise, I am just not certain on the steps.
Also, is there any configuration that needs to be done on the Tomcat side of things?
Thanks,
Steve