Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We have a production setup where we have

  • Squid in the front(caching images, js, css, etc)

  • Apache httpd in the middle(prefork + mod_rewrite + mod_jk/AJP + mod_deflate + mod_php(few php pages))

  • Apache tomcat 5.5 at the end serving all the dynamic stuff.

What would be the best way to reduce the overhead of having 3 servers in the request path ?

Wondering if replacing httpd with a faster web server like nginx/lighttpd will help. httpd right now does the job of url rewriting(for clean urls) and talking to tomcat(via mod_jk) and compressing output(mod_deflate) and serving some low traffic php pages. What would be ideal replacement for httpd given that we need these features?

Is there a way to replace (squid + apache) with a single entity that does caching well (like squid) for static stuff, rewrites url, compresses response and forwards dynamic stuff directly to tomcat ? heard abt varnish cache, wondering if it can help.

share|improve this question

Optimisation is a 'black' art, so to speak. There are many ways to skin the cat.

You need to identify your bottle-necks before working out how to improve things.

While it is possible to replace all your server software, with alternatives, that will only help if the software was the bottle neck and not something else, e.g. network bandwidth or I/O bandwidth.

You can start by benchmarking your existing setup and tweaking your existing settings to see if they improve things.

share|improve this answer

Your Answer


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.