4

I am a complete beginner and am planning to setup a photo sharing site. This is the setup I am planning, basically for a start - - Cherokee (instead of Apache) for serving dynamic content (python-based application), and Nginx for serving static files.

Since, I am a beginner, what have I, to lose? So, can someone, from your experience, please tell me, what I'd lose by choosing Cherokee over Apache for serving dynamic content in PHP/Python/whatever?

Anything other than the fact that there's lot of documentation, many people who can help when there's an issue etc as Apache is well established and the most popular web server?

Again, my intention is not to spurt a flame war here. Just wanted to know if Cherokee would be better than Apache in terms of performance, reliability, and speed, when it matters (peak load times). Also, I heard it's a lot faster than Apache in serving dynamic content, is it true?

UPDATE: In another scenario, can someone kindly suggest a dynamic content web server for busy websites the size of Picasa, flickr, or YouTube? Building my website on top of that, I believe would ease the scaling of my photo & video sharing website. This is kinda subjective, but this is not the main question, although I would love to have some clarification for the same.

  • Have you considered using nginx for dynamic content also? Since it's just passing requests off to Django, whichever web server you use. – Cyclops Nov 13 '11 at 12:54
  • No. Since, Cherokee has a graphic interface for tweaking configuration, and Nginx neither has that or enough documentation (I guess?), I chose Cherokee for serving dynamic content and left static content to Nginx (as for static content, I don't have to tweak Nginx a lot). I hope this is not foolish. –  Nov 13 '11 at 13:02

1 Answers1

4

Cherokee has proven to be a good server, faster than Apache. I can't speak towards how it scales, but for the most part, it seems to be more responsive for small-medium sized sites at least. The major thing with Cherokee is that I don't think there's a reasonable equivalent to the .htaccess files that apache uses for per-container/per user settings. If this isn't a requirement, then jump right into Cherokee.

The other major thing you're missing out has nothing to do with the software directly, but rather the support and answers available to you for problems you may run into along the way. Apache is old, established, etc.... and as such, you can find a plethora of help, and ideas for how to solve various problems and so on. There's no way you'll find as much for Cherokee. So in short, your support resources are likely better for Apache

sandroid
  • 1,724
  • 12
  • 16
  • Do you think Apache is working on improving its performance to get competitive with other webservers? The C10K limitation, process threading etc., are they going to change? –  Nov 12 '11 at 22:33
  • 1
    +1 Apache in incredibly versatile. Because of this versatility, it's slow. I commonly say Apache is good at everything, great at nothing. That said, Apache is more than enough to run all but the busiest websites; and those sites commonly write/extend their own stuff. Be very careful underestimating the size and importance of the community when choosing a web server; similarly the documentation (::cough:: nginx has almost none ::cough:: Apache's docs are renown for completeness). Apache 3.0 was supposed to address many issues, but it's been "almost here" for years. – Chris S Nov 13 '11 at 01:42
  • @Chris S Thanks for the advise. So, Apache for dynamic content (with PostgreSQL for DB) + Nginx for static content - - will this scale enough to serve busy websites? Websites the size of Flickr, Picasa and YouTube? what would be your suggestions for such busy websites? (Yes, please consider it that way.) –  Nov 13 '11 at 08:36
  • If you think you will be as big as youtube, hire a professional. Seriously. For now, you should probably stick to apache and nginx. – Belmin Fernandez Nov 13 '11 at 13:12
  • @Beaming Mel-Bin the thing is I want to be that professional. I want to learn. –  Nov 13 '11 at 13:21
  • 1
    Starting from zero that takes years. – TomTom Nov 13 '11 at 15:10
  • @TomTom I don't mind, but tell me this. Suppose I setup a website, it's getting popular and I see that I should change some things, I ask around because I want to do it all by myself. This way, won't I be able to learn all the stuff I need to keep my website (how ever popular it gets) live and fine? –  Nov 13 '11 at 16:04
  • @BadLearner - I get that you want to learn by doing this yourself, but IMHO, if ever yoursite gets to the point of having enough traffic where you need to change things up and scale horizontally to meet the demand, you likely won't want one person handling it, much less yourself. So don't plan with that in mind... yet. – sandroid Nov 13 '11 at 16:09
  • @sandroid - you and TomTom are right. The only thing is, I want to know how everything behind my website works, so that people (web hosting provider providing managed services or ppl I employ) don't fool around, saying they need this, they need that etc. –  Nov 13 '11 at 16:15
  • So you dont want to make money (but get stuck in the tech) and you want to be a specialist in everything? Master of none is the result. It takes exeperience, not asking. Pros get good rates for the experience. Asking is nice, but if you ever need to scale, questions wont solve your issues - you will make bad decisions because of the questions you dont even know to ask. – TomTom Nov 13 '11 at 17:01
  • 1
    @BadLearner Yes, Apache and Nginx will get you a long way into creating a large and successful website. It's possible to scale a solution based on them to something the size of the websites you mentioned; it's just generally inefficient at that scale, so it's not commonly done (websites that size had the budget to hire teams of people to create more efficient services). Also static content should get moved to a CDN at some tipping point. There's no single methodology that's appropriate for both very small and extremely large websites, might as well learn the small/medium methods first. – Chris S Nov 13 '11 at 19:05