RE: TCP SYN behavior and reverse proxy (mod_proxy)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Hello, don't know if this works or if you tried it already but here are some Environment Variables which could help.
> proxy-sendchunks or proxy-sendchunked or maybe proxy-initial-not-pooled.
> I changed the keep-alive timeout on the backend to the timeout of the frontend apache to minimize the "502 Bad Gateway" error.

Hi, thanks for your thoughts Michael. In fact, I have tried proxy-sendchunked. It seems to cause Apache to spool the POST data as it is being received - and that's great. Unfortunately the app can't handle chunked encoding, so that option is out. I've also tried proxy-initial-not-pooled, force-proxy-request-1.0, proxy-nokeepalive, and some others without any noticeable effect. Maybe I just haven't stumbled across the correct combination, though I am starting to suspect there is none.

I can understand what you are saying regarding the Keep-Alive timeout value. However the timeout threshold we are reaching is being imposed by the OS (Linux in this case), not by Apache. I know this because while the TCP connection with the app server is waiting for the POST data to be received, the app server is sending multiple SYN-ACKs in an attempt to get something from the webserver. There is an TCP kernel parameter you can adjust (sysctl -w net.ipv4.tcp_synack_retries=5) which controls how many TCP SYN-ACKs that will be sent during these conditions. And if I bump this number up, it causes the OS to keep the idle TCP connection open longer and the POST completes successfully.

But...that's just a workaround in my opinion. What I really want is for Apache to wait until it receives all of the POST data before it opens the TCP connection to the app server.


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
   "   from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx



[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux