我通常用PHP编写代码,并且总是使用apache。我已经创建了自己的网站,但我很快意识到apache并不是最好的解决方案:它每页使用15 my内存,使一台内存不足的小型服务器有大约200个并发用户。
现在,我正在研究其他解决方案,并快速查看了lighttpd或nginx,所以我的问题是:
使用更轻的选项,如上述两个,将使我的服务器能够处理更多的用户?我之所以问这个问题,也是因为,当我在这里打字的时候,我的网站在增长,服务器端会有一些严重的成本,这样下去,当我有2000名用户的时候,我需要10台网络服务器,这是不能接受的。
我还读过关于node.js和Express的文章,这些对于PHP来说是有效的替代品吗?我不是开发一个像聊天一样的实时应用程序,而是更像一个论坛。
提前谢谢。
发布于 2012-01-23 00:01:31
这在很大程度上取决于你的网站/网络应用的“个人资料”。
它是否经常使用SQL,您是提供更多的动态内容还是更多的静态内容?
你有多少次请求/秒?
几个月前,我经历了你的情况,我手上也有一个快速增长的网站,我不知道该做什么,在做了一些研究和测试之后,我使用了以下工具集:
php
APC缓存
到fpm守护进程的lighttpd/lighttpd连接
它运行得非常好,在此之前,我只是使用apache/php和e促进剂,它在每秒50次的请求中苦苦挣扎。
现在,我在同一个硬件上有300+请求/秒,服务器甚至一点也不费力。
lighttpd/nginx或类似工具的一个优点是能够以非常小的占用空间和较少的开销来提供静态文件,而apache /o quite即使提供静态文件也会使用相当大的步子。
php使您能够将预处理从基础结构的服务层中分离出来,再加上APC缓存,这将使您获得一个良好的执行工具集。
发布于 2012-01-22 18:32:46
您可以尝试使用nginx作为反向proxy+static内容服务器,还可以让apache处理动态生成的页面php等。通过这种方式,您将能够使用熟悉的环境,并从nginx占用的较小内存/cpu中获益。
您必须在不同的端口或不同的ip上运行apache,并在nginx中创建简单的请求路由逻辑。
例如,对于教程,请查找这里。
关于替代方案--在堆栈过流上试试你的运气。nginx也应该很好地充当nodejs的反向代理。
发布于 2012-01-22 18:38:35
我会一直和nginx一起去。当前服务器有多少内存?你确定PHP是问题所在吗?如果它是一个论坛,它也可以使用所有内存的mysql服务器(如果有的话)
https://serverfault.com/questions/352497
复制相似问题