有和没有Nginx的Django

时间:2018-03-15 07:15:16

标签: django nginx uwsgi

我正在使用 Django 在linux服务器上开发Web应用程序。

在部署方面,建议的方法是使用 Nginx 与客户进行通信, Django 只需要与 Nginx进行通信使用 uwsgi 协议。

关系是客户< -Http-> Nginx< -uwsgi-> Django服务器

后来我发现我也可以使用

在公共网络上推送服务器

python manage.py runserver 0:0:0:0

似乎Nginx可以帮助提供静态文件和媒体。

我的问题是,使用Nginx作为中间人的好处是什么?

2 个答案:

答案 0 :(得分:2)

来自docs on runserver

  

请勿在生产设置中使用此服务器。它没有经过安全审核或性能测试。 (这就是它将如何保留。我们的业务是制作Web框架,而不是Web服务器,因此改进此服务器以便能够处理生产环境超出了Django的范围。)

答案 1 :(得分:0)

runserver用于调试,在生产中我们使用gunicorn / uwsgi启动django应用程序,所以问题可以是Do we need Nginx if we have configured gunicorn/uwsgi for Django,答案是YES,因为与gunicorn相比/ uwsgi,Nginx具有以下优势 :

  • 安全性,可以配置为拒绝或允许某些IP地址
  • 负载均衡
  • 处理静态文件
  • 缓存
  • ...

参考更多功能:https://en.wikipedia.org/wiki/Nginx#HTTP_proxy_and_Web_server_features