【发布时间】:2012-10-29 05:43:45
【问题描述】:
我们的网站需要实时更新,我们正在考虑各种彗星/长轮询解决方案。经过研究,我们决定使用 nginx 作为 4 个龙卷风实例(托管在 Amazon EC2 上)的反向代理。我们目前使用的是传统的 LAMP 堆栈,并且已经用 PHP 编写了大量代码。我们愿意将我们的 PHP 代码转换为 Python 以更好地支持此解决方案。以下是我的问题:
假设一个四核处理器,Nginx 是否可以与 4 个 tornado 实例运行在同一台服务器上,或者是否建议运行两个单独的服务器:一个用于 nginx,一个用于 4 个 tornado进程?
在 Nginx 前面使用 HAProxy 有什么好处吗? Nginx 本身不是很好地处理负载均衡吗?
根据我的研究,Nginx 似乎没有很好的 URL 重定向模块。是否首选使用 Redis 进行重定向?如果是,Redis应该在Nginx前面还是后面?
我们的大部分应用程序代码不会参与实时更新。此代码包含多个数据库查询和文件系统读取,因此它显然不适合非阻塞应用服务器。根据我的研究,我了解到阻塞问题可以通过拥有多个 Tornado 实例来缓解,而其他人建议使用单独的应用服务器(例如 Gunicorn/Django/Flask)来阻塞调用。使用非阻塞服务器时处理阻塞调用的最佳方法是什么?
将我们的代码从 PHP 转换为 Python 将是一个漫长的过程。在 Nginx 后面同时运行 Apache/PHP 和 Tornado 是否可以接受,还是我们应该坚持使用语言(使用 gunicorn/django/flask 的 tornado 或单独使用 tornado)?
【问题讨论】:
标签: php python django nginx tornado