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

Being stuck in a MS stack architecture/development position for the last year and a half has prevented me from staying on top of the world of open source stack based web server's recent evolution more than I would have liked to. However I am now building an open source stack based application/system architecture and sadly I do not have the time to give each of the above mentioned web servers a thorough test of my own to decide. So I figured I'd get input from the best known community for systems architecture.

This is a site that is a resource for information regarding a specific domain and target audience with features to help users not only find the information but to also interact with one another in various ways for various reasons.

I chose the open source stack for the wealth of resources it has along with much better offerings than the MS stack (i.e. WordPress vs BlogEngine.NET). I feel Java is more in the middle of these stacks in this regard although I am not ruling out the possibility of using it in certain areas unrelated to the actual web app itself such as background processes.

I have already come to the conclusion of using PHP (using CodeIgniter framework & APC), MySQL (InnoDB) and Memcached on CentOS. I am definitely serving static content on Nginx. However the 3 servers mentioned have no consensus on which is best for dynamic content in regards to performance. It seems LightTPD still has the leak issue which rules it out if it does, Nginx seems it is still not mature enough for this aspect and of course Apache tries to be everything for everybody.

I am still going to compile the one chosen with as many performance tweaks as possible such as static linking and the likes. I believe I can get Apache to match the other 2 in regards to serving dynamic content through this process and not having it serve anything static. However during my research it seems the others are still worth considering.

So with all things considered I would love to hear what everyone here has to say on the matter. Thanks!

share|improve this question
    
So far I haven't seen you mention any tools that don't run on windows. nginx, wordpress, mysql, php, java and apache all run on windows, many times with better performance ( PHP in particular I've seen 4-5 times peformance increase on the same hardware) –  Jim B Jul 12 '09 at 13:39

3 Answers 3

up vote 2 down vote accepted

Take this with a few grains of salt, but my impression is that Apache will be somewhat easier to configure to serve PHP than the other two servers. And if you set up Apache properly, i.e. don't load unnecessary modules, keep the number of processes/threads under control, etc. then I think you can get it reasonably close in efficiency to nginx or lighttpd. I think many people have a somewhat exaggerated opinion of the improvement one can get using lighttpd or nginx over Apache for dynamically generated pages.

share|improve this answer
    
That is my thinking. With all the optimizations that can be done during compile and configuration it will end up equal. I wasn't 100% sure but even if they are a bit faster than an optimized Apache it will be minimal enough to make its maturity and the likes outweigh that. Although the consensus during my research still leaves one wondering. –  Gregory Kornblum Jul 12 '09 at 5:00

Since you mention CodeIgniter, you might want to have a look at Kohana which was originally a fork of CodeIgniter, however has implemented all OO on the improved OO concept of php5.I am not saying either is better, in the end it is a matter of personal preference.

share|improve this answer
    
Yeah, I remember it from its Blue Flame days and have fiddled with the latest version but it just has a more bulky feel to it. II figured I'd retrofit any Kohana features that I may need to CI such as the payment module. My UI developer prefers Kohana and uses it for freelance. So in the end it is more a matter of personal preference. Regardless, still good suggestion. –  Gregory Kornblum Jul 12 '09 at 4:50

I personally think nginx is easier to configure than Apache. Looking at Apache configs tend to make my head hurt.

As far as configs go, my current preferred setup is nginx + php-fpm + APC. I have several clients running very happily with this config and they typically have migrated off of Apache based setups. Obviously, YMMV. =)

share|improve this answer
    
I hear ya, httpd.conf can be a beast. One of the main problems with that is the adding of psuedo-documentation within the config file. You'll find if you take all that and the commented modules out it becomes much more manageable. Regardless I am coming from a high performance/availability perspective. Regardless, thanks for the input since it will still be used for my static content. –  Gregory Kornblum Jul 13 '09 at 13:38
    
FWIW, I also find that resource consumption is lower with this setup as compared to Apache. –  Jauder Ho Jul 13 '09 at 21:32

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.