I am asking this question because I am a beginner and I’ve read almost 90% of articles speaking about Django, but the problem is:
Django was made and had problems for deploying, it is python, and python is not PHP!
When reading Django tutorials, a beginner is in big problem, because he can find a tutorial “outdated” for example if you take a tutorial made in 2008 you’ll see that they speak like the following:
to deploy django, use apache, and dont forget to use another server
for static files, for example nginx as a reverse proxy!
But now, I found some articles saying that making a second server is useless because in the past, Django was served using mod_python which uses a lot of resources! So here is my question:
- Which one is the best for VPS, Apache or Nginx, using the latest release of course! Please dont say: use lighty or cherokee…
- If, for example, the answer was: use Ngnix, then, is it better to use one server or two, as in the past it was better to make two webservers?
- When I’ve checked my brain, I’ve found that there is only few free space avalaible, so I don’t want to learn something else, so do you think a 100% pythonic solution will be ok? CherryPy does it be a perfect solution, mean, CherryPy + Django and basta! no Apache, no Nginx, no more learning than python language!
- From what I’ve read, Django and asynchronous servers are not “good friends”, so does really get a good choise to use Nginx?
Updated: added (4) about Django and asynchronous.
Either will work fine.
The key point that is being made is that Django/Python should not serve your static resources. “Two servers” could be different physical servers, or instances, or virtual servers. Here’s an example of configuring nginx to serve static files directly and then pass dynamic requests to Python:
From https://code.djangoproject.com/wiki/DjangoAndNginx:
IMO, setting up either Apache or nginx is pretty simple and there are lots of resources out there. You don’t need to learn very much about them to setup something simple.