主题:【讨论】nginx 还是 apache? -- 铁手

大河奔流 导读 复 35 阅 31133

/ 3 首页 上页 下页 末页

O 【讨论】nginx 还是 apache? 15 铁手 字1615 2012-03-13 20:15:05
O 俺只知道现在nginx确实比较流行 黄袍怪 字65 2012-03-13 21:11:34
O 建议老铁考虑nginx+node.js+couchdb 4 吹西门的雪 字579 2012-03-14 00:05:59
O 个人建议,还是选自己熟悉的。 1 西电鲁丁 字283 2012-03-14 00:42:27
O 内存不足干嘛不加内存? 1 博客南 字330 2012-03-14 02:48:36
O 动态内容用apache,静态内容用nginx 4 copypst 字327 2012-03-14 02:49:03
O NGINX很稳定,学习成本也低 1 未来的未来 字144 2012-03-14 03:30:02
O 刚才问了一下,最稳定的还是APACHE,NGINX 未来的未来 字20 2012-03-14 04:07:00
O 老铁的西西河架构比较怪,起码俺看前端的东西如此。 素里太守 字27 2012-03-14 05:28:48
O 当然用nginx 4 季侯 字479 2012-03-14 06:37:05
O 这个主意也不错,呵呵。 季侯 字44 2012-03-14 06:38:16
O 这是以前的观点了。 1 季侯 字159 2012-03-14 06:43:33
O 还是先介绍一下 pastebt 字82 2012-03-14 18:16:29
O 小声问一下:vsdom是虾米? 狡猾的史倍思 字135 2012-03-14 21:46:50
O typo, jsdom, thx 吹西门的雪 字0 2012-03-14 23:04:10
2012-03-13 20:15:05
主题:3685846
铁手
铁手`352`/bbsIMG/upload/face/352.gif`70`45489`39473`493309`正四品上:正议大夫|忠武将军`2003-05-03 11:59:57`0
【讨论】nginx 还是 apache? 15

最近网站有一段时间很慢,有时候导致服务器崩溃,所以在琢磨是不是用 nginx。

nginx据说很好,特别是用的内存资源很少,在同样的内存容量条件下,可以支持比 apache 多的多的并发访问。我对nginx不熟,对新的apache了解也不够多,这里想请问一下行家,两者之间该怎么选择?

对nginx的最大担心就是它的开发稳定性。之前对lighttp也有过兴趣,那个时候也是新宠,冒的很快,但是不久就出现内存泄露的问题,现在来看,元气还没有恢复,使用的人数似乎不多。虽然现在nginx的风头很健,但是不知道会不会出现 lighttp 类似的问题。相对而言,apache 的开发从历史来看也好,从它的规模来看也好,断档或者飘忽的情况不太会发生。

我目前的最大关注点是内存问题。从网站的情况来看,目前的内存在大多数情况下是够用的,但是也有挡不住的时候。nginx 能不能解决这个问题?或者新的 apache 的 event MPM 能不能缓解问题?worker 呢?我为了保险,目前是用 prefork 。

简单测试过 nginx。碰到一个问题,用 php-cgi 来作为 fastcgi 的后台时,大量的并发访问,没放倒 nginx,但是让 php 崩溃了,而崩溃后的 php,也没有简单的办法重启。从网上搜来的建议,是要自己写一个 cron job每隔几分钟去检查一下,必要的话,就重启。觉得多了一些麻烦。nginx 的一个好处,是配置文件看上去很让人赏心悦目。apache 的,简直就是一大乱屋子,知道地方还好,不知道找半天。不过现在看上去也有改观。

用nginx基本上就肯定要用fastcgi,php 的话,用php-cgi还是用 php-fpm?不熟悉。用apache的话,可以使用fastcgi,也可以使用 modphp。用fastcgi对 apc 有什么影响?看了不少网上的东西,有些地方还是不明白。apc是在一个php-cgi中可以共享,还是每一次访问都会导致失效?也就是说,如果在apache中,用modphp时,apc 缓存可以一直有效,那么在fcgi时候,是不是有限数量的apc同时有效,但是互不相通?而不是一直无效?

请大家帮忙建议哪种情况下,用哪种配置比较好?


  • 本帖 19 回复
2012-03-13 20:15:05
3685880 复 3685846
黄袍怪
俺只知道现在nginx确实比较流行

国内不少大网站也都开始用nginx了,其它就不了解了,毕竟不是干这个的


2012-03-13 21:11:34
2012-03-14 00:05:59
3686006 复 3685846
吹西门的雪
吹西门的雪`31830`http://www.einsteinsworld.com/images/ICONS/Matrix-Neo.JPG`70`1375`5306`44118`正九品上:儒林郎|仁勇校尉`2009-02-14 22:56:39`0
建议老铁考虑nginx+node.js+couchdb 4

西西河是基于文档的数据后端,所以couchdb最合适.node.js开发快速,并发吞吐量惊人,内存占用非常轻量级,非常适合多读多写的web应用. nginx做load balancer.

西西河是多读少写,所以加个redis或者memcached中间缓存,redis的好处是后端异步写不用费心去管.

另外这个界面实在是要改改了,太落伍,太不好用了.而且也该考虑加mobile端了.node.js底下有很多不错的single page application框架,可以搭个很酷的SPA.

还要罗嗦一句:这个防scraping的一切皆由js生成的手段可以歇了,防君子防不了小人.现在用node.js+vsdom来scrape不要太容易.

一点浅见,胡乱写写,贻笑方家.

另:才注意到老铁官至二品.古有正德皇帝好给自己封官,老铁很有遗风啊.


  • 本帖 2 回复
2012-03-14 00:05:59
2012-03-14 00:42:27
3686026 复 3685846
西电鲁丁西电鲁丁`34208`/bbsIMG/face/0000.gif`70`12865`583`55967`从六品上:奉议郎|振威校尉`2009-05-05 23:49:03`0
个人建议,还是选自己熟悉的。 1

nginx和apache,肯定是各有各的好处,不过老铁你的精力有限,除非自己非常熟悉nginx或者有朋友帮忙,否则最好不要贸然换平台。

不知道你的具体硬件配置,如果想要尝试的话,也可以前面放一个load balancer,后台先一台机器用nginx,其他机器还用apache,然后随着nginx环境的稳定和熟悉,逐步切换。

仅供参考。


2012-03-14 00:42:27
2012-03-14 02:48:36
3686116 复 3685846
博客南博客南`25611`/bbsIMG/face/0000.gif`70`1395`882`16316`从五品下:朝散大夫|游击将军`2008-06-05 22:39:47`0
内存不足干嘛不加内存? 1

nginx在俄罗斯第二大网站用了这些年,稳定性有什么问题?国内新浪搜狐等大站都用它。

你目前的配置是怎样要说一下。

如果硬件不能改动(比如加内存),可以前端nginx负载均衡,后端多个web server(nginx、apache随便选,看你熟悉哪个)。web server可以一直加,直到数据库撑不住。然后可以用高速缓存作为数据库和web server的缓冲,memcached或者Redis。


2012-03-14 02:48:36
2012-03-14 02:49:03
3686118 复 3685846
copypstcopypst`18806`/bbsIMG/face/0000.gif`70`16`96`798`从九品上:文林郎|陪戎校尉`2007-08-02 20:49:50`0
动态内容用apache,静态内容用nginx 4

我工作中写过Apache的module,也写过类似nginx的event driven的http proxy.从稳定性而言apache prefork无敌.

主要归功于古老的多进程架构,一个coredump不会把全系统弄垮。但event/thread架构就不一样了一个coredump就会down掉整个系统。而coredump是很难避免的。

所以css,javascript,image和静态html可以由ngnix serve

php driven的内容还有apache来


最后于2012-03-14 03:33:14改,共1次;
2012-03-14 02:49:03
2012-03-14 03:30:02
3686156 复 3685846
未来的未来未来的未来`30870`/bbsIMG/face/0000.gif`70`263`906`9925`从七品上:朝散郎|翊麾校尉`2009-01-06 08:51:58`0
NGINX很稳定,学习成本也低 1

还可以用来做load balance 和 缓存服务器。

配置也简单,可以实线的功能也不少。

PHP不熟悉。

另外铁老大可以把网站的架构给大家说说,大家帮忙出出主意。


2012-03-14 03:30:02
刚才问了一下,最稳定的还是APACHE,NGINX

一般只是做静态内容。


  • 本帖 1 回复
2012-03-14 04:07:00
老铁的西西河架构比较怪,起码俺看前端的东西如此。

是否适用反向PROXY有待考虑。


  • 本帖 1 回复
2012-03-14 05:28:48
2012-03-14 06:37:05
3686305 复 3685846
季侯季侯`4358`/bbsIMG/face/0000.gif`70`5327`1765`39594`正二品:特进|辅国大将军`2004-12-05 05:57:11`0
当然用nginx 4

我们公司线上环境08年前是apache为主,现在逐渐都迁移到nginx上,nginx性能比php强多了,轻松达到上万个并发连接,几千的tps。目前线上nginx服务器大约上千台,稳定性很好,文档很强,而且nginx的插件也很多功能强大,使用方便。

我现在的工作是开发一个应用hosting环境,类似google app engine。其中一种典型的应用模型就是nginx+fastcgi,现在我平台上跑的大的应用,就是采用这种模型。每天1600万个http请求(不是pv),很稳定。

需要的话,我可以提供技术支持,不管是开发nginx插件还是hack fastcgi,都没问题。


  • 本帖 1 回复
最后于2012-03-14 21:41:42改,共1次;
2012-03-14 06:37:05
3686307 复 3686006
季侯
这个主意也不错,呵呵。

现在nodejs比较火,就是不知道老铁熟悉不熟悉。


2012-03-14 06:38:16
2012-03-14 06:43:33
3686309 复 3686190
季侯季侯`4358`/bbsIMG/face/0000.gif`70`5327`1765`39594`正二品:特进|辅国大将军`2004-12-05 05:57:11`0
这是以前的观点了。 1

很多时候,访问数据库/缓存等动态内容都可以用nginx脚本完成了。

现在nginx的插件不要太强大,啥都可以做,比如用了lua的nginx插件,呵呵。

另外nginx的配置很简单易读。


2012-03-14 06:43:33
2012-03-14 18:16:29
3686776 复 3685846
pastebtpastebt`18189`/bbsIMG/face/0000.gif`70`1232`44`5528`从八品上:承奉郎|御武(侮)校尉`2007-06-14 13:49:55`0
还是先介绍一下

现在的结构,访问的数量级别,盲目的修改和优化都是没有好处的。还有硬件是否可以升级。


2012-03-14 18:16:29
2012-03-14 21:46:50
3686898 复 3686006
狡猾的史倍思狡猾的史倍思`34565`/bbsIMG/face/0000.gif`70`520`270`7682`从五品上:朝请大夫|游骑将军`2009-05-18 00:01:33`0
小声问一下:vsdom是虾米?

难道说的是jsdom?

最近用Ajax的网站多,以前用Python写的爬虫都不那么好用了,正准备写个能搞定Ajax的爬虫,要是有更简单的实现手段就更好了。


  • 本帖 1 回复
2012-03-14 21:46:50
帖内引用

/ 3 首页 上页 下页 末页