Openfire Cluster behind EC2 Load Balancer

Hello There,

I have a two node cluster setup of Openfire using same database on two EC2 nodes (say App Server A and App Server B).

UI application instances are running on two EC2 Nodes (say Web Server A and Web Server B), chat clients are using BOSH for HTTP-Binding to connect to Openfire.

I have two load balancers, say LB1 and LB2, below picture depicts the setup:

I have enabled all the required ports/traffic from security groups, but the HTTP-Bind requests get blocked, displaying “blocked:mixed-content” in network section.

Can someone suggest what else do I need check, implement?

You might be trying to access both HTTPS as well as HTTP endpoints. Try using just one of those.

As an aside: make sure that your LB2 uses some kind of stick sessions! You want the same client to end up with the same instance of Openfire for every request.

I have enable SSL on openfire, configured sticky session on EC2 Load balancers.

Now from UI application for http-bind requests, it is able to connect to openfire server but for a request which fetches messages it gives 404 ‘invalid SID’.

Any specific area which I need to explore?

I tried turning down one openfire cluster node, so that the bind requests propagate to the same openfire server.

User shows online status when checked from openfire, but then one of the bind request fails with 504 ‘Bad Gateway’ error.

Can some one suggest a way out of it? Or any suggestions?

Hi @nakul.goyal where you able to resolve this issue ?
I am also hitting the same issue as you mentioned.
The stickyness is probably not working in amazon LB & this leads to http-bind call failing with 404 status.
The logs say org.jivesoftware.openfire.http.HttpBindServlet - Client provided invalid session: 8vslujzzel.

Hello all
have you fixed your issue?

Atleast I haven’t been able to solve this in Openfire 4.4.1.
Not sure about the latest releases of the hazelcast plugin.