许多通过 Amazon EC2 部署的 Django 应用程序都使用 HTTP 服务器 NGINX 和 Gunicorn。
我想知道它们实际上是做什么的以及为什么两者并行使用。并行运行它们的目的是什么?
它们不并行使用。 NGINX 是一个反向代理 http://en.wikipedia.org/wiki/Reverse_proxy。它排在第一位。它接受传入的连接并决定它们下一步应该去哪里。它还(通常)提供静态媒体,例如 CSS、JS 和图像。它还可以做其他事情,例如通过 SSL 加密、缓存等。
Gunicorn 是下一层,是应用服务器 http://en.wikipedia.org/wiki/Application_server。 NGINX 看到传入的连接是为了www.domain.com
并知道(通过配置文件)它应该将该连接传递到 Gunicorn。古尼角兽是一个WSGI http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface服务器基本上是:
Web 服务器和 Web 应用程序或框架之间的简单且通用的接口
Gunicorn 的工作是管理和运行 Django 实例(类似于使用django-admin runserver
开发期间)
与此设置相反的是使用 Apachemod_wsgi
模块。在这种情况下,应用程序服务器实际上是 Apache 的一部分,作为模块运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)