大家如何看待nginx vs. Lighttpd vs. Apache

Centos, Ubuntu, Nginx, MySQL, Redis, Mongodb, Docker, ...
User avatar
jwxie
炉火纯青
炉火纯青
Posts: 510
Joined: 2007-07-09 10:31

大家如何看待nginx vs. Lighttpd vs. Apache

Post by jwxie » 2008-08-07 8:15

nginx vs. Lighttpd vs. Apache這類文章都已經看了好多了
在定位上, 前兩者在streaming, rail的東西當然是比apache好很多
但大家又如何看待一個普通的php+mysql server呢

User avatar
IOsetting
论坛管理员
论坛管理员
Posts: 3645
Joined: 2006-10-17 1:48

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by IOsetting » 2008-08-07 11:28

jwxie wrote:nginx vs. Lighttpd vs. Apache這類文章都已經看了好多了
在定位上, 前兩者在streaming, rail的東西當然是比apache好很多
但大家又如何看待一個普通的php+mysql server呢
用nginx, lighttpd之类负责推站点的静态内容, 脚本和前台页面还是交给apache, 用独立的数据库和缓存服务器. 如果apache负载还是太高就用集群+反向, 基本上足够啦.
还有另外一种思路就是完全静态化加局部脚本, 国内有不少大型的站点是静态实现的, 比如和讯. 这样即使应付每天上亿的PV也很容易处理. 不过这和我们平时玩的网站就差别太大了.

还有一种省事的做法, 就是买CDN服务, 等于将所有缓存给直接推到离用户更近的网络去了. 现在大型的站点几乎都有做CDN优化.

User avatar
jwxie
炉火纯青
炉火纯青
Posts: 510
Joined: 2007-07-09 10:31

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by jwxie » 2008-08-07 12:24

按IO的意思, 前兩者在, 比如說, phpbb3上, 應該以apache為優先考慮
但在statics或streaming或rail上應該考慮前兩者?

User avatar
IOsetting
论坛管理员
论坛管理员
Posts: 3645
Joined: 2006-10-17 1:48

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by IOsetting » 2008-08-07 13:34

jwxie wrote:按IO的意思, 前兩者在, 比如說, phpbb3上, 應該以apache為優先考慮
但在statics或streaming或rail上應該考慮前兩者?
大致如此, 这样能物尽其用, 省时省力.
对于规模很大的社区系统, 从长久考虑应该采用前两者, 因为社区程序不需要用到apache那么多华丽的功能, 而性能是最重要的. 不过对于每日PV不过1m的就不需要考虑了. 小规模的应用apache绝对没问题, 而前两者会需要额外的维护和调试成本.
在站点达到一定规模后, 性能变成瓶颈, 从硬件上解决就要付出更多成本, 相比较而言, 前两者的维护开发成本就变得微不足道. 需要balance一下各种情况下的成本, 每天PV 1m, 10m 或者 100m 的站, 侧重都会不一样, 而不同性质的网站, 也相差很大. 得看具体的案例来决定.

User avatar
jwxie
炉火纯青
炉火纯青
Posts: 510
Joined: 2007-07-09 10:31

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by jwxie » 2008-08-07 13:48

嗯這也的確是看到的所有討論中都有提到的事
apache太多功能
其實我問是因為我想玩玩前兩者
因為沒玩過, apache已經玩了很久
:grin:

叶知秋
学有小成
学有小成
Posts: 111
Joined: 2007-07-29 1:41

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by 叶知秋 » 2008-08-07 14:00

nginx vs. Lighttpd vs. Apache
跑phpBB都没有太大的差距,要是内存少的话可以使用nginx+spawn模式,当处于spawn模式的时候nginx和lighttpd差距不大,不过似乎nginx更稳定(个人感觉)。
跑phpBB的话首先要优化的是mysql,可以用启用mysql的缓存,启用phpBB的memcache模块。再下去就是文件IO优化,当数据增大的时候文件必然增多,这时候要把附近目录细化,都堆在一个文件夹下会严重拖慢速度。

User avatar
jwxie
炉火纯青
炉火纯青
Posts: 510
Joined: 2007-07-09 10:31

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by jwxie » 2008-08-07 14:45

叶知秋 wrote:nginx vs. Lighttpd vs. Apache
跑phpBB都没有太大的差距,要是内存少的话可以使用nginx+spawn模式,当处于spawn模式的时候nginx和lighttpd差距不大,不过似乎nginx更稳定(个人感觉)。
跑phpBB的话首先要优化的是mysql,可以用启用mysql的缓存,启用phpBB的memcache模块。再下去就是文件IO优化,当数据增大的时候文件必然增多,这时候要把附近目录细化,都堆在一个文件夹下会严重拖慢速度。
嗯, 我現在在用一台非常舊的手提電腦
acer travelmate 520
還是P3的處理器喔

不過主要是用來學習SERVER用的

nginx與lighttpd的比較, 都是以nginx比較穩定的同意率高
我打算再跑一次eA, cache, gzip和zend一起來跑
不過, 我現在想問下
你說, 優化mysql那段怎麼說起
能不能詳細一點點, 解釋一下原理
畢竟我很多時候都是看英文的東西
官方討論或google很多都是英文
另外, 細化是指需要自己, 比如說, 將某些php 或template檔給分拆成兩個, 三個檔案嗎

User avatar
IOsetting
论坛管理员
论坛管理员
Posts: 3645
Joined: 2006-10-17 1:48

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by IOsetting » 2008-08-07 15:54

叶知秋 wrote:nginx vs. Lighttpd vs. Apache
跑phpBB都没有太大的差距,要是内存少的话可以使用nginx+spawn模式,当处于spawn模式的时候nginx和lighttpd差距不大,不过似乎nginx更稳定(个人感觉)。
跑phpBB的话首先要优化的是mysql,可以用启用mysql的缓存,启用phpBB的memcache模块。再下去就是文件IO优化,当数据增大的时候文件必然增多,这时候要把附近目录细化,都堆在一个文件夹下会严重拖慢速度。
主要的时间还是消耗在php运行时, Mysql 可提升的地方不太多, 缓存加大或者用独立的服务器. 优化一下搜索或者关闭搜索能减少一些特耗时的查询.
用eA或者zend的加速可以提升很多.
文件, 如果是偏下载的论坛, 要安装子目录存储的MOD, 并使用物理地址或者转向下载, phpBB3默认是用php来把文件推给浏览器, 如果文件很大而且访问量很多, 这种方式负载太大. 也可以将静态文件都转向到独立的服务器, 单独加速.
可以将cache文件夹映射到内存, 或者自己实现缓存模块的接口. 还可以用独立的缓存服务器, 然后前面使用集群来做负载平衡.

叶知秋
学有小成
学有小成
Posts: 111
Joined: 2007-07-29 1:41

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by 叶知秋 » 2008-08-07 16:01

jwxie wrote:
叶知秋 wrote:nginx vs. Lighttpd vs. Apache
跑phpBB都没有太大的差距,要是内存少的话可以使用nginx+spawn模式,当处于spawn模式的时候nginx和lighttpd差距不大,不过似乎nginx更稳定(个人感觉)。
跑phpBB的话首先要优化的是mysql,可以用启用mysql的缓存,启用phpBB的memcache模块。再下去就是文件IO优化,当数据增大的时候文件必然增多,这时候要把附近目录细化,都堆在一个文件夹下会严重拖慢速度。
嗯, 我現在在用一台非常舊的手提電腦
acer travelmate 520
還是P3的處理器喔

不過主要是用來學習SERVER用的

nginx與lighttpd的比較, 都是以nginx比較穩定的同意率高
我打算再跑一次eA, cache, gzip和zend一起來跑
不過, 我現在想問下
你說, 優化mysql那段怎麼說起
能不能詳細一點點, 解釋一下原理
畢竟我很多時候都是看英文的東西
官方討論或google很多都是英文
另外, 細化是指需要自己, 比如說, 將某些php 或template檔給分拆成兩個, 三個檔案嗎
gzip开启phpBB自带的就OK了,除了附件也没多少东西了。

mysql优化这部分一本书都写不完 :? :? :? 只能靠经验

细化这个打错了,是附件细化,可以参考
http://www.phpbbchina.com/forum/viewtop ... =23&t=3337


:grin: :grin: :grin:
不过P3的机器跑现在的应用比较吃力,即使优化也不会太好,所以只是练练手就OK了,要是真想有大的长进还得有大的应用,经验都是慢慢搞出来的^_^

叶知秋
学有小成
学有小成
Posts: 111
Joined: 2007-07-29 1:41

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by 叶知秋 » 2008-08-07 16:21

IOsetting wrote:
叶知秋 wrote:nginx vs. Lighttpd vs. Apache
跑phpBB都没有太大的差距,要是内存少的话可以使用nginx+spawn模式,当处于spawn模式的时候nginx和lighttpd差距不大,不过似乎nginx更稳定(个人感觉)。
跑phpBB的话首先要优化的是mysql,可以用启用mysql的缓存,启用phpBB的memcache模块。再下去就是文件IO优化,当数据增大的时候文件必然增多,这时候要把附近目录细化,都堆在一个文件夹下会严重拖慢速度。
主要的时间还是消耗在php运行时, Mysql 可提升的地方不太多, 缓存加大或者用独立的服务器. 优化一下搜索或者关闭搜索能减少一些特耗时的查询.
用eA或者zend的加速可以提升很多.
文件, 如果是偏下载的论坛, 要安装子目录存储的MOD, 并使用物理地址或者转向下载, phpBB3默认是用php来把文件推给浏览器, 如果文件很大而且访问量很多, 这种方式负载太大. 也可以将静态文件都转向到独立的服务器, 单独加速.
可以将cache文件夹映射到内存, 或者自己实现缓存模块的接口. 还可以用独立的缓存服务器, 然后前面使用集群来做负载平衡.
呵呵 意见相左了,根据我的经验mysql是最重要的,mysql慢了php取出结果自然就不快,mysql快了php取出结果自然也慢不到那里去。php用eA或者xcache就足够了,因为安装了php缓冲器以后再提升php的速度就很难了,当然重写代码除外。

不推荐将cache文件夹映射到内存,因为我们有更好的选择memcache,配合memcache可以得到更好的效果。
去这里下载acm_memcache.php
http://code.phpbb.com/repositories/entr ... mcache.php
然后放到includes/acm/下面。
然后编辑config.php,把$acm_type = 'file';替换成$acm_type = 'memcache';
当然你还要在acm_memcache.php中配置下你的memcache服务器地址和端口。

User avatar
IOsetting
论坛管理员
论坛管理员
Posts: 3645
Joined: 2006-10-17 1:48

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by IOsetting » 2008-08-07 17:55

呵呵, 不是说mysql的提升不重要, 只是说不会太明显. 大多数的页面访问里, mysql耗的时间与php解释部分相比少得多, 特别是用了缓存之后, 基本上都是只占10%~30%. 只有在发帖和搜索的过程中会比较耗mysql资源, 针对这些情况进行优化是有意义的. 不过发帖和搜索动作所占比例很小, 通常不到一成. 而且索引库可以独立出来另立服务器处理, 或者直接用第三方的爬虫从前端进行索引(例如用google), 还可以省下更多的数据库负担.
如果是发帖非常密集的论坛, 这种情况另当别论, 数据库确实是提升的最大瓶颈.

在缓存上, 直接用内存文件交互比调用缓存模块的接口要快. 当然, 在缓存复杂变量类型的情况下, 用模块能避免很多编程上的麻烦.

叶知秋
学有小成
学有小成
Posts: 111
Joined: 2007-07-29 1:41

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by 叶知秋 » 2008-08-07 19:12

IOsetting wrote:呵呵, 不是说mysql的提升不重要, 只是说不会太明显. 大多数的页面访问里, mysql耗的时间与php解释部分相比少得多, 特别是用了缓存之后, 基本上都是只占10%~30%. 只有在发帖和搜索的过程中会比较耗mysql资源, 针对这些情况进行优化是有意义的. 不过发帖和搜索动作所占比例很小, 通常不到一成. 而且索引库可以独立出来另立服务器处理, 或者直接用第三方的爬虫从前端进行索引(例如用google), 还可以省下更多的数据库负担.
如果是发帖非常密集的论坛, 这种情况另当别论, 数据库确实是提升的最大瓶颈.

在缓存上, 直接用内存文件交互比调用缓存模块的接口要快. 当然, 在缓存复杂变量类型的情况下, 用模块能避免很多编程上的麻烦.
恩 主要是被楼主的优化迷住了 :grin: :grin: :grin:
要是一个几千注册用户和几万帖子都要进行深度优化phpBB早就被淘汰了 ;) ;) ;)

User avatar
jwxie
炉火纯青
炉火纯青
Posts: 510
Joined: 2007-07-09 10:31

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by jwxie » 2008-08-08 0:33

哈哈...兩位高手的話值得學習
我在這方面還是很少了解
memcache我有看到, 剛剛找到一些官方資料
但不曉得我的這台testing server能不能用上
畢竟內存很少, 雖然我已經將swap加到1GB :grin: (說起來其實沒什麼用好像@@)

叶知秋
学有小成
学有小成
Posts: 111
Joined: 2007-07-29 1:41

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by 叶知秋 » 2008-08-08 14:29

内存才是关键 呵呵 swap不宜太大

User avatar
jwxie
炉火纯青
炉火纯青
Posts: 510
Joined: 2007-07-09 10:31

Re: 大家如何看待nginx vs. Lighttpd vs. Apache

Post by jwxie » 2008-08-09 5:31

內存不夠, 用swap來頂一下....真的跑光用swap來頂一下...

http://goko.no-ip.org/wordpress/
http://goko.no-ip.org/phpBB3/
這是我昨天在第7次重新安裝後, 裝好的站
現在對server administration有點認識
不過我沒有用phpmyadmin, 好像是單單是什麼mysql-server mysql-client
這跟phpmyadmin有啥分別?
那我又要怎麼提出他的資料作備份?
我意思是, cpanel有提供phpmyadmin, 是圖形的東西, 但是ubuntu是command-line
那麼mysql-server我又要怎麼提出這些資料, 我是不是不能跟phpmyadmin那樣, 直接在 http://網址/phpmyadmin/打出來後, 再提出資料?

既然我知道不能, 我該怎麼提出這些備份的mysql?
應該有command可以產生 backup後, 並且save在某個特定的位置
有人知道這個command嗎?

Post Reply