EDIT: OMG... please take my understanding of Apache, Nginx or Lighttpd with a grain of salt. Kindly correct me if I am wrong.

First let me be clear. I am learning system administration, and this is what I have learnt so far... Apache is a wonderful web server software, there's no doubt about that. But as you all know, there are some issues with it, like c10k, memory usage, latency (when compared to others), performance under heavy load, and cost-efficiency.

Is Apache trying to do something about this? or do you think it would be a better idea to use Nginx instead? (I don't think Lighttpd is a god idea either - - memory leaks, timeouts etc - - at least IMHO.)

Please advise.

{{Consider that a wordpress blog receiving about 10-20 million page views a month, is going to be hosted on the server.}}

  • 1
    You might want to consider asking this one in a slightly less inflammatory manner. – womble Jul 30 '11 at 18:23
  • 20M page views a month is only 8 per second. Have a look here for some webserver stats. Apache is the market leader by some way. – user9517 Jul 30 '11 at 18:28
  • He's worried about the c8 problem... – womble Jul 30 '11 at 18:31
  • PLEASE NOTE: I can only use one web server software: Apache, Nginx, Lighttpd or Litespeed (my own limitation). Also, Nginx can take both static and dynamic content well without requiring lot of modifications, I guess? – user88753 Jul 30 '11 at 19:32
  • Why are you limiting yourself? You don't have to have the webservers running at the same time. As you want to learn to be a sysadmin learn how to install the ones you want to test and how to configure/start/stop them. It really will help you on the way. – user9517 Jul 30 '11 at 19:39

Apache's mission isn't to produce the fastest web server. It, is however the most popular open source web server and is more feature rich than its competitors (particular with the wide swath of modules available).

Nginx has served me well, especially under high traffic. I'd recommend going the nginx route. It's as easy as Apache to configure (perhaps easier IMHO). If you do, use PHP-FPM with Nginx and you'll be able to handle your 10-20 million requests with far fewer resources.

|improve this answer|||||
  • You mean PHP FastCGI Process Manager right (alternative to PHP FastCGI)? And thanks for the suggestion. – user88753 Jul 30 '11 at 18:49
  • @Aahan You're welcome, and yes. – Matty Jul 30 '11 at 18:54

Go with whatever webserver you are most comfortable with as any of the major ones will handle the load you suggest fairly easily. If you don't have a preference then go with apache. It's the market leader by a long way and there is masses of support all over the internet.

|improve this answer|||||
  • The problem is, I hear that a wordpress blog or any other website for example, loads faster on Nginx when compared to Apache. Isn't it true? (also consider latency issues here.) – user88753 Jul 30 '11 at 18:47
  • setup WP on an apache server and an nginx server. Load the same pages and see if you can percieve the difference. – user9517 Jul 30 '11 at 19:09

If you plan to learn more as a sys admin i suggest you start with apache just for the fact its the big dog and you are bound to run in to a job that requires it or something based on it. That being said nginx is wicked fast at static content and has some force behind it, like the fact wordpress.com is using it in place of apache in some cases. A good leaning chance might be to setup a nginx front end for static content and apace+php backend. Google and you can find examples doing this.

|improve this answer|||||