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

I'm mainly a developer, but every now and again I jump into the sys-admin position. For the most part I've gotten away with deploying php and python apps using apache.

I write today because I'm starting to research faster alternatives to apache, yet still have some of the core features I require like put and delete methods and the ability to connect to a socket via apache. ( This I have not tried, but might be a nice whistle if I ever employ comet on my apps. ) As you've probably guessed, I use javascript exclusively for all my websites utilizing deep linking for SEO support.

The main areas that I'm looking to increase performance is the connection between the django apps and the web server to the client response. Every day I work my best to keep the smallest memory foot print as possible, however I am getting to the end of my rope when it comes to working with apache.

In general, keep in mind that I'm just starting this research so I'm looking more for material to read then solutions at this moment.

My main questions:

  • Am I missing something about apache that makes it faster then everything else?
  • What would be a good server environment to deploy just static files one?
  • What are some of the leading open-source and paid alternatives?
share|improve this question

2 Answers 2

up vote 1 down vote accepted

How are you hosting the WSGI applications? Assuming you are using mod_wsgi, the following comments apply.

Are you using nginx for static files and as proxy through to Apache/mod_wsgi? That is a good start as it brings various benefits beyond just better static file serving. Specifically, nginx isolates Apache from slow HTTP clients and allows Apache to only come into picture when full request from client is ready. The additional buffering within the proxying arrangement allows Apache to offload the response quicker as well. All up, allows Apache to run with less processes/threads and perform more effeciently.

Other than that, for mod_wsgi, you should really explain your configuration. Are you using embedded mode or daemon mode? What Apache MPM are you using? Are you running PHP in same Apache using mod_php? Have you ensure you aren't still loading mod_python into Apache?

share|improve this answer

While I'm no expert on Python mod_wsgi, I'd like to think I know a bit about web architecture and PHP in particular.

However IME, the webserver/module interface you are currently looking at should have very little impact on the overall processing of a web page. If you're running a farm of servers, then there may be some beneift in serving the static content via a different platform (nginx, tux) or even better - use a CDN. But with a couple of weservers or less - running additional webservers will make your resource usage less efficient - not more.

Specific direction for how to make your site go faster would require a lot of data about how your site currently behaves and where your users are - and is beyond the scope of a post here.

I'd recommend Steve Souder's book on High Performance Websites.

share|improve this answer

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.