8👍
I recommend:
- Nginx to serve static content, and proxy requests to Apache
- Apache + mod_wsgi to run Django
- PostgreSQL as a database
- Debian/Ubuntu, they have great python packages
2👍
I’ll lay my head on the chopping block and suggest, that, probably, Apache with mod_wsgi for django and some other web server (lighttpd?) for static content, would be the most generic solution.
There are lots of options besides this one, Google App Engine being one of them, though, all of them are specific to the application you are going to deploy and the way it is going to be used.
- [Django]-Running Django 1.5 and Django 1.3 on the same server
- [Django]-ImportError: No module named south
1👍
The Google App Engine hits most of your requirements, mainly those about costs, maintenance, robustness and reliability. However that does not imply it is the best platform to run Django on, but it is one option for you.
If you want to consider this option, you may want to start by checking out the following:
- [Django]-Django + jQuery: Why CSRF verification fails on multiple simultaneous requests
- [Django]-Serialize a list of objects in json in Django
- [Django]-How to get a foreignkey object to display full object in django rest framework
1👍
It should be stressed that Google App Engine is fundamentally different from a typical Django environment. This issue differs from a “Debian vs some other distro”, “PostGre vs MySQL” or “lighttpd vs nginx” type choice since choosing App Engine most probably will require you to write code specific to it or make modifications in your existing code base.
You should look at what Google AppEngine provides and requires (and what not) and consider whether App Engine is suitable for your application. It might be an uneasy u-turn if you see that App Engine is not the correct choice after you are halfway through.
- [Django]-How to get a formatted DateTimeField value outside a Django template?
- [Django]-Django post_save and south migrations
- [Django]-Django replaces non-ascii characters with \ufffd
0👍
It’s impossible to tell which is the best system to run Django on, but IMO: if you anticipate lot’s of pageviews, go with nginx/lighttpd for webserver instead of Apache if you don’t need those fancy Apache modules.
However, since I’m used to apache, it was faster for me to configure the site to run on Apache and switch to nginx when performance problems occured.
- [Django]-Getting task_ids for all tasks created with celery chord
- [Django]-Getting Http403 when saving files through django s3 middleware (but can save using boto in shell)
- [Django]-Django formsets required
- [Django]-Serialize a list of objects in json in Django