Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

A few weeks ago I went to a presentation where a guy said that in his company he used a reverse proxy that records all incoming http requests to the production server. Then he can execute them on another server for performance testing.

I did lot's of searching about it, but never find the ideal tool to do this. Does anyone know a proxy server that can do it?

share|improve this question
add comment

2 Answers

Sounds similar to a replay attack. I'm not sure which web servers can do it automatically, but you can definitely write some script yourself.

The reverse-proxy will need to log all the transactions. You can then write a script to parse the log and replay the connections to the URLs. You can also simulate the number of connections per second, and also the sequence of connections.

However, there are some limitations. Mainly, session information, may be lost if it is not preserved in the URL.

So, the results may not be very useful. This is just something to keep in mind. Ultimately, you need to be clear on what your objectives of the test are.

share|improve this answer
add comment

Squid allows you to redirect any URLs - so when you're only dealing with a single request at a time, its very easy to write your own handler which records details of the HTTP headers sent, then relays the request to the real target, optionally recording the response. Alterntively there's http::recorder which does most of it for you, although I don't know anyone using on this kind of scale.

The problems are that you need to ensure that you've got a consistent image of your system (i.e. contents of the database) at the start of the recording period which you can then run the replay against.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.