我通常在PHP代码,并始终使用Apache。 我已经开始了自己的网站,但我很快意识到,apache并不是最好的解决scheme:它使用每页15MB的内存,使一个小型服务器的内存不足200个并发用户。
现在,我正在查看其他解决scheme,并快速查看lighttpd或nginx,所以我的问题是:
使用上述两个较轻的选项,将使我的服务器能够处理更多的用户? 我所要求的原因也是因为,当我在这里input的网站数量不断增长时,服务器端将会出现一些严重的成本,这样,当我有2000个用户时,我需要10个networking服务器,这是不能接受的。
我也读了关于node.js和Express,这些是PHP的有效替代品吗? 我没有开发像聊天这样的实时应用程序,而更像是一个论坛。
提前致谢。
它高度依赖于你的网站/ web应用程序的“configuration文件”。
它是否使用SQL很多,你提供更多的dynamic内容或更多的静态内容?
你有多less个请求/秒?
几个月前,我经历了你的情况,我也有一个快速增长的网站在我手上,不知道要做什么,做了一些研究和testing后,我去了以下工具集:
php-fpm dameon
APCcaching
lighttpd / fastcgi连接到fpm守护进程
它工作得很好,在那之前我只是简单地使用apache / php和eaccelerator,而且每秒处理50个请求。
现在我在同一个硬件上有300多个请求/秒,服务器甚至没有出汗。
lighttpd / nginx或类似的一个优点是能够以非常小的占用空间和小开销来提供静态文件,而apache不提供fastcgi,即使提供静态文件也会使用相当大的脚本。
php-fpm使您能够从基础架构的服务层分离预处理,并与APCcaching配合使用,这是一个性能良好的工具集。
你可以尝试使用nginx作为反向代理+静态内容服务器,仍然有Apache来处理你的dynamic生成的页面[PHP等]。 通过这种方式,您将能够使用熟悉的环境,并从nginx的较小内存/ cpu占用空间中受益。
你将不得不在不同的端口或不同的ip上运行apache,并在nginx中创build简单的请求路由逻辑。
为教程在这里寻找实例。
关于替代方法 – 在stackoverflow上试试你的运气。 nginx也应该很好地扮演nodejs的反向代理。
我会一直用nginx。 你当前的服务器有多less内存? 你确定PHP是问题吗? 它也可以是MySQL服务器(如果有的话)使用所有的内存,如果它是一个论坛
Nginx肯定会使用比Apache更less的内存。 与此相关的一个问题是,大多数托pipe服务提供商会给你一个控制面板来configurationApache,但是对于nginx来说,却很less。 这意味着您将不得不手动configuration服务器,这也意味着您不可能从主机获得任何支持。 pipe理运行论坛软件的2000个并发用户的Web服务器很难。 现在,这可能是一个社区网站,可以容忍一些停机时间,你学得很快,但你应该牢记这一点。 您将能够通过禁用任何您不使用的模块并将PHP作为fast-cgi而不是Apache模块来减lessApache的内存使用量。 做一些testing。
nodejs在内存上非常酷,但是你将不得不学习一个全新的编程范例。 这是一个有效的select,但它是一个现实的挑战,你是另一回事。