Pidgin disconnected while accessing Openfire through Apache using BOSH (http-bind)

Hello,

I would like to ask you for help regarding my setup of Openfire. Currently I am proxying it through Apache with public DNS name with following directives in vhost section:

ProxyRequests Off
ProxyPass /http-bind http://neptune:7070/http-bind/
ProxyPassReverse /http-bind http://neptune:7070/http-bind/

Openfire & Apache are running on same machine = neptune. OS is OpenSuSE 11.1. Pidgin (2.6.1) is configured using URL like this: https://my.domain.com/http-bind

I am running Pidgin on Windows & Linux also. On Linux it permanently displayed that BOSH connection manager disconnected and on Windows it reconnects regularly sometimes with Ping timeout message.

Apache access log shows that there is successful access of http-bind context. Openfire shows a WARN message:

2009.09.07 13:48:55 Client provided invalid session: 5315629c. [127.0.0.2]

I configured two users, they were able to authorize each other but no messages were delivered. Also messages sent from Openfire “send message” tool were not delivered. In “client sessions” the client IP is localhost what seems to me suspicious:

1
guest
9f4488af
Authenticated

Online
Online
1
127.0.0.2

Does anybody have similar problem or do I have something wrong configured?

Thanks in advance,

Laco

Message was edited by: Ladislav Gazo Also I configured Emite running on Tomcat on localhost (neptune) and it is working fine. I suppose Openfire is not able to route messages out because it seems they are all coming from localhost because of proxy… Am I right? Is it a bug or not-yet-implemented feature?

Hi Ladislav,

I’m trying to get to the bottom of this problem, which i still have after quite much trying.

Did you get to resolve this issue, and finally get http binding to work with Apache??? Thanks in advance

Hello gianluca,

no I didn’t manage to get it working after several times. I almost grabbed the code but then I didn’t have time to invest more effort to it. It worked correctly with web client but as in no “remote” client.

Do you have the same situation? Because I think this has something to do with routing and correct source IP recognition in OpenFire…

I have created my own chat application in XIFF. Everything was great until my target users (who are behind a school firewall) got to use the app. That is where I started to think http binding was a good idea. The only option from what I got. But I have been fighting since. I think I finally got it to work exclusively on port 80, then proxying the traffic to the 7070 port with the same Apache rules you posted above - although only locally. It seems like messages are getting through.

I am trying to test it online now. I haven’t used Pidgin, but if my setting works I can surely have a look myself to see if I get it to work, then share with you…

Although I am not sure of the exact cause of your issues, we use XIFF successfully on both socket and BOSH connections.

At first glance I think you need to look into the Apache redirect/proxy a bit more closely. There are other settings, and it could be timing out as BOSH requires the connection to keep active for 30 seconds or so depending on your Openfire settings. Unfortunately I don’t know the exact settings for Apache as we are using IIS Rewrite which has a different syntax. Have you had a search on this forum for other people that have setup a similar setup.

Also check the bind properties: http://www.igniterealtime.org/community/docs/DOC-1061#http-bind

I have never used Pidgin so am not sure of any compatibility issues.

Good luck.

Thanks for your interest. I think you are right, it IS Apache’s job to proxy the URL properly. I got it working on locally on my machine (Windows + Apache) using a virtualhost definition found on this forum. The problem now is that i need to apply this on our server which runs on SuSE linux and it seems not to behave in the same way…

One step closer…

Well as I mentioned before, when I was running it with a web client located on the same server, everything was fine. But when you connect with a standalone client (like Pidgin is) from different machine then it seems that messages are getting to OpenFire but they are returned to localhost and not to remote client.

I tried several parameters (which I don’t remember all now) but I remember tried something with timeout stuff… It was possible to see that pidgin timed me out somehow but I was not able to find why.

I think I also tried Apache’s rewrite rules but that didn’t help also. Definitely I will return to it and try it again but in that time I ran out of options and it seems noone used that scenario…

I also noticed disconnects without using Apache (direct connection to Openfire) and created OF-335 to track this issue.

I found i fixed this when my server name (in server properties) didn’t match the host name the client was connecting with.