原点视界创业笔记(24):Nginx尝试

0 5天 前

强迫症的最后一件事,就是实现网站的高并发高负载,没有实践是不甘心的。以目前我的服务器的状况,可以负载200个左右的并发请求,系统CPU资源就会被耗尽,这还是启用缓存插件之后的情况。但是考虑到原点视界目标不是做个静态的网站,而是以社区驱动,做交互,就必须要考虑服务器的负载问题了。老王的想法是,搞定性能优化在前,安心做内容建设在后。前期是没什么收入的,如果网站有流量,还是做好技术铺垫,才能平稳过渡。

首先尝试更换服务器,呼声最大的当然是nginx了,大牛们都说并发强怎样怎样的,然后就是我比较喜欢的lightspeed。折腾了一下Nginx,也不难,大概花了40分钟学会了配置,上线,安装了个简单的wordpress demo,bbpress和buddypress组件。访问的时候,是感觉明显的,CPU占用率降低了,单次请求网页消耗的cpu资源大概是apache的1/3,这是比较惊人的,我说的是动态网页,静态页面的请求nginx比apache肯定更有优势了。

于是乎信心满满,来了个并发测试,测试结果让老王眼珠子都掉了下来,50个并发请求,服务器基本CPU资源占满。后来简单分析了下,nginx处理PHP还是通过PHP-fpm,无论如何最终解释脚本的还是PHP本身,如果脚本执行效率低,那么占用的CPU资源自然高。与Apache和w3total cache这些知名缓存插件配合相比,nginx使用这些插件要经过自己的定制配置,这又是一项额外的负担,不值得,并且我最终要是面对,以面向登录用户为主的发展方向,nginx这个效率提升为负数,还需要额外学习的路子就放弃了。

当然,Nginx是个很好的前端,用来做负载均衡,把动态服务请求反向代理到apahce,是个不错的选择。但是我的内心里,有了个更好的解决方案,那就是使用亚马逊的负载均衡器。这就得单独拿出来聊聊了。

至于lightspeed,简单分析了下,在静态页面方面的提升是巨大的,动态页面最终解释还是要看PHP本身的效率,什么服务器级别的缓存都不可能带来质变,不然apache和Nignx早在小网站中没市场了,也就不提了。

什么方案适合自己,才是最合适的方案,我的目标还是打造高可用,高并发的动态社区,你对静态页面提升再大,那点开销又能多支撑多少访客。既然apache用起来这么熟悉了,就不折腾了,折腾的新东西越多,网站本身可靠性越差。

发表评论