Push mail works by doing what is pretty much a perversion of how HTTP is supposed to work.
That Push request does a GET, and the server sits there and never responds… unless it has data to send. Then it can send that data and not close the stream, or continue to send chunks of data along the line. For responses, a connection forcibly closed can be used as a trigger to initiate data being sent in the opposite direction. I bet that no matter what you set your timeout to, you’re going to experience timeouts in the log. That’s because the z-push server will literally keep the connection open forever if you let it. (Unless you can set a max lifetime or something in zpush, which would need to be less than what you set in pound) From your 1260 thread link below it’s clear to me that your Pound backend timeout is set to 120 seconds. You’ll likely want that higher. However, the point is that even with these errors, the client should just reconnect and get another persistent connection. Are you actually having any problems? Or is it just that the log is showing errors? If it’s the latter, that’s the nature of the protocol mobile devices use for Push, and there’s not much pound can do about it. (There’s no way to know which connections should live forever, and which shouldn’t, so pound can’t treat it differently… And if it did, that would open yourself up for a DoS attack) As it is, you’ll want to make sure your Threads value in pound is high enough to cover ALL concurrent devices that will use that type of connection, plus anything else you need to support. (Because each device will try to always have 1 connection open) Joe From: Jean-Pierre van Melis [mailto:[email protected]] Sent: Sunday, April 08, 2012 4:20 AM To: [email protected] Subject: [Pound Mailing List] Ping errors in error log when using pound as a reverse proxy for Zarafa (Exchange for Linux) I'm using pound for a long time and I think it's great. I have 3 things that I would like to change. I have already asked 2 of them and it seems they are not going to happen. One is turning pound into a complete transparent proxy using T_PROXY (iptables) and the other one was URL-manipulation. Now I don't really want a new feature, but would like to know what's happening. I am using Pound with several servers and one of them is my MTA, a Zarafa server that supports "Microsoft-Activesync". In my errorlog of pound I'm getting constantly messages about "ping". How it works, I don't know, but I'm convinced it needs it for "push-mail" to work. Is it something that pound should support? I've already asked the people of Z-push, but they didn't help me further. Another user of Z-push using Nginx has the same problem... I would really like some info how I can get it to work properly. The last post says it is resolved by raising the timeout value, but I think they just solved the entries in their logs. I'm not using push-mail but let my clients (Android Phones) sync periodically. http://z-push.sourceforge.net/phpbb/viewtopic.php?f=2&t=1138 http://z-push.sourceforge.net/phpbb/viewtopic.php?f=4&t=1260
