I am a newbie to developing with Python and I am piecing together the data I have to make intelligent options in 2 other open questions. (This is not a replica.)
I am not developing utilizing a framework but creating a web application on your own while using gevent library. So far as front-finish web servers go, it appears I've three options: nginx, apache, and lighttpd.
All accounts that I have read, nginx's mod_wsgi is not appropriate.
That leaves two options - lighttpd and Apache. Under heavy load, can i see major variations in performance and memory consumption qualities? I am of the opinion Apache is commonly memory hungry even if not using prefork, but I'm not sure how appropriate lighttp is perfect for Python applications.
What are the caveats or good things about using lighttpd over apache? I actually want to hear all the details you are able to bore me with!
Apache is undoubtedly probably the most broadly used web server available. The industry positive thing. There's a lot more information about how to complete stuff by using it, so when something goes completely wrong you will find many people who understand how to repair it. But, it's also the slowest as they are requring lots of fine-tuning along with a beefier server than Lighttpd. Inside your situation, it will likely be a great deal simpler to obtain off the floor using Apache and Python. You will find numerous Amplifier packages available, and several guides regarding how to setup python making the application work. Only a quick search will enable you to get on the way. Under heavy load, Lighttpd will outshine Apache, but Apache is sort of a train. It simply keeps chugging along.
- Wide Users List
- Universal support
- Lots of plug ins
- Slow as they are
- Requires performance fine-tuning
- Memory whore (Not a way you have access to it focusing on a 64MB VPS)
Lighttpd may be the new kid on the market. It's fast, effective, and kicks ass performance smart (as well as use like no memory). As they are, Lighttpd baby wipes the ground with Apache. But, less lots of people know Lighttpd, so setting it up to operate is harder. Yes, it's the second most used webserver, but it doesn't have just as much community support behind it. Should you take a look here, on stackoverflow, there's this dude who keeps asking about ways to get his Python application working but nobody has assisted him. Under heavy load, if set up properly, Lighttpd will out preform Apache (Used to do some tests some time back, and also you might visit a 200-300% performance rise in demands per second).
- Fast as they are
- Uses hardly any memory
- Much less support as Apache
- Sometimes just doesn't work
Nginx Should you be managing a static website, you would then use nginx. you're correct in saying nginx's mod_wsgi is not appropriate.
Conclusion Benefits? You will find both web servers made to have the ability to replace each other. If both web servers are updated properly and you've got ample hardware, then there's no real advantage of using one over another. You should attempt and find out which web server meets your need, but asking me I'd say opt for Lighttpd. It's, for me, simpler to configure and merely works.
Also, You should think about Cherokee Web Server. Mad easy to setup and, the performance aint half bad. And you ought to request this on Server Fault too.