Apache / PHP到Nginx / Tornado / Python
我们的网站已经开发出对实时更新的需求,我们正在考虑各种彗星/长轮询解决方案.经过研究,我们已经确定nginx作为4个龙卷风实例的反向代理(托管在Amazon EC2上).我们目前正在使用传统的LAMP堆栈,并在PHP中编写了大量代码.我们愿意将PHP代码转换为Python以更好地支持此解决方案.这是我的问题:
>假设一个四核处理器,nginx可以在与4个龙卷风实例相同的服务器上运行,还是建议运行两个独立的服务器:一个用于nginx,另一个用于4个龙卷风进程?>在Nginx前使用HAProxy有什么好处? Nginx本身不能很好地处理负载平衡吗?>根据我的研究,Nginx似乎没有一个很棒的URL重定向模块.是否优先使用Redis进行重定向?如果是这样,Redis应该在Nginx前面,还是落后?>我们的大部分应用程序代码都不会涉及实时更新.此代码包含多个数据库查询和文件系统读取,因此它显然不适用于非阻塞的应用程序服务器.根据我的研究,我已经读过阻止问题只是通过拥有多个Tornado实例来缓解,而其他人建议使用单独的应用服务器(例如Gunicorn / Django / Flask)阻止呼叫.使用非阻塞服务器时处理阻塞调用的最佳方法是什么?>将我们的代码从PHP转换为Python将是一个漫长的过程.同时在Nginx后面运行Apache / PHP和Tornado是否可以接受,或者我们应该坚持语言(龙头与gunicorn / django / flask或龙卷风本身)?