在正常情况下,Apache如何处理the c10k problem? 说在运行非常小的脚本时用少量数据说,或者如果我使用Apache,我是否需要扩展?
在后台,繁重的工作是由一些运行专用软件的服务器完成的,这些软件处理请求,但我想使用Apache作为前端。这是一个可行的计划吗?
答案 0 :(得分:8)
我认为Apache更像是一个原始服务器 - 运行类似mod_php或mod_perl的东西来生成内容,并且聪明地路由到适当的系统。
如果您的网站前端有数千个并发点击,并且返回了各种类型的数据(静态和动态),您可能会发现将更优化的系统放在它前面是有用的。
Apache的经典后优化问题不是生成动态内容(或者至少可以在过程的早期优化),而只是等待慢速客户端能够接收到的字节被送了。因此,将Squid或Nginx形式的反向代理放在服务器前面以接管慢速网络客户端的“勺子馈送”,同时允许内容生成完全发生,这是一个显着的优势。速度和本地网络速度 - 100Mb /秒甚至千兆位速度 - 如果它甚至必须遍历网络。
答案 1 :(得分:2)
我假设您可能已经看过this data,但如果没有,它可能会给您一些想法。
答案 2 :(得分:1)
伙计们,假设您正在运行具有10K连接的Web服务器(同时)。怎么会这样?
你每秒有很多连接
动态内容
您确定您的CPU可以处理那么多PHP会话吗?我想不,所以你为什么要考虑C10K问题? :d
静态内容 - 小文件
还有很多关系吗?在单一服务器上?可能你也遇到了网络/吞吐量方面的问题,或者你是谷歌未来的竞争对手。使用解决C10K问题并且稳定的lighttpd - 飞行灯。将Apache仅用于大型站点的静态文件是显而易见的。
您的客户端正在大量下载大型文件 - 静态内容
ISO图像,档案等
如果您是通过网络服务器进行的 - FTP可能更合适。
视频流
使用lighttpd或专业软件。还是......其他资源怎么样?
我正在使用Linux虚拟服务器作为apache服务器前面的负载均衡器(使用LVS-NAT的特定补丁),我很高兴:)这个字符串是你想听到的答案。