I've got a fairly simple rewrite rule that bounces our Python pycurl client from the main server to a new server that actually dishes out the file:
RewriteRule ^/update-repository/windsington(/.*)?$ http://newsvr.example.com/update-repository/windsington-real$1 [R=307,L]
Our client downloads a set of files and is connecting to both servers through our network proxy.
The first file downloads just fine, but the second invariably gives a "408 Request Time-out". If I run the process again, the file that previously timed out now downloads fine (since it is the first file to be downloaded) and the next file gives me a 408. If I keep doing this, I'll eventually get all of the files downloaded.
I've tried reproducing using wget and using a little sample python program using pycurl, but I can't reproduce it.
What I'm hoping for here is some advice on how to debug this
thing inside of Apache (yes, the 408 definitely comes from the
redirecting server and not the proxy or the server redirected
to; the 408 is in the access logs). Obviously, something in the
client/proxy is being sent that is tripping Apache, but I don't
know Apache well enough to know how to debug this kind of thing.
Alternatively, could libcurl be getting tripped up on something?
Another interesting thing is that, in the access log, the successful download has a proper user agent string, but in the failed download, it does not.
Version information:
- Apache: 2.2.16 running on Debian Squeeze.
- Pycurl: libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
- Python: 2.4 on CentOS 5.7
tj