
1 herozhang 2016-06-08 09:55:34 +08:00 因为大多数网站没啥流量压力 |
2 7654 2016-06-08 09:58:02 +08:00 一般动态请求要 apache 去做, nginx 静态和反代 分工不同,没有孰优孰劣 |
3 clino 2016-06-08 09:59:16 +08:00 apache 可以直接当应用服务器,nginx 可不行,所以有时候 apache 比较方便 另外在直接静态文件 serve 的时候,nginx 的 index 页面对于长文件显示不全,而且这个貌似没法解决,所以有时候我们会因为这个去用 apache |
4 xuwenmang 2016-06-08 10:00:59 +08:00 百度: nginx vs apache 你希望我复制几条 |
5 BOYPT 2016-06-08 10:07:00 +08:00 nginx vs apache 功能和角色上都不在同一个级别,没可比性。 倒是 nginx vs lighthttpd 后者基本没什么优势但是还是有一定用户群。 |
6 kungfuchicken 2016-06-08 10:14:14 +08:00 因为大多数网站对性能没有那么的敏感, Apache 足够用而且很多功能比 Nginx 还方便 |
7 huobazi 2016-06-08 10:15:47 +08:00 有了 某宝 为啥 还要有 某东 |
8 est 2016-06-08 10:16:00 +08:00 原因是网上各种教程都是基于 10 年前的 apache 的。 nginx 配置好多也是抄袭得不完整。 |
9 cashew 2016-06-08 10:20:34 +08:00 Nginx 在处理静态页面上比 Apache 有优势。 Nginx 的设计初衷是提供一种快速高效多并发的 web 服务。 |
10 hp3325 2016-06-08 10:29:37 +08:00 via Android 大而全与小而精的区别,具体需要用哪个看需求,就像原来 IIS 也有市场不是。 |
11 tinkerer 2016-06-08 10:31:54 +08:00 via Android 比如 webdav 服务, apache 上很容易就搞定了 |
12 wujunze 2016-06-08 10:34:26 +08:00 不同业务场景选择不同的 websever 呗 这个没有什么好纠结的 |
13 fcicq 2016-06-08 10:49:27 +08:00 哪怕真的全面碾压了也会有大量的历史遗留. 而碾压本来就不存在, 特别是功能上. |
14 tigren 2016-06-08 10:56:27 +08:00 抬头一看发现是 PHP 节点,于是就不好意思发表意见了 |
15 shiny PRO 那是实验环境下的性能高,你跑真实生产环境,决定性能的基本都不是 web server |
16 dangyuluo 2016-06-08 10:56:52 +08:00 via iPhone 这是一个多元的世界 |
17 shiny PRO 有常识云:离开剂量谈毒性都是耍流氓。 同样,离开 profiling 谈性能也是耍流氓。 |
18 zaishanfeng 2016-06-08 11:10:08 +08:00 via Android 有了 git 还要 svn 干什么 |
19 zhicheng 2016-06-08 11:18:54 +08:00 为什么有了更好看的 OS X 还有人用 W indows 。 为什么有了更开放的 Linux 还有人用 OS X 。 为什么有了垃圾回收的 Java 还有人用 C++ 。 为什么有了性能更好的 Golang 还有人用 Java 。 为什么有了 Pepsi 还有人喝 Coca Cola 。 为什么有了 Nike 还有人穿 Adidas 。 为什么有了猫咪还有人养狗狗 。 不能再举例了。 你想用 nginx 就去用,不用找一万个理由来说服自己。多研究些问题,少谈些主义。 |
20 slixurd 2016-06-08 11:20:18 +08:00 “为什么有了 Pepsi 还有人喝 Coca Cola 。 ” 因为现在 Pepsi 越来越甜了,甜的无法忍了.... |
22 vic2012 2016-06-08 11:32:43 +08:00 via iPhone 为什么我觉得新的 apache 比 nginx 配置起来顺手的多…… a2ensite a2enmod 逻辑及其清晰 配置文件也非常清晰 |
23 ericls 2016-06-08 11:36:36 +08:00 via iPhone 我不知道为什么有人说 nginx 可以跑 PHP |
27 cc7756789 2016-06-08 11:41:52 +08:00 nginx 是处理静态内容的 |
29 cc959798 OP @zhicheng 我没谈什么主义啊,感觉在 PHP 节点下提问题好奇怪啊,大多都带着火药味,不感兴趣的话完全可以不回答啊 |
31 Andy1999 2016-06-08 13:09:31 +08:00 via iPhone @ericls 不可以 用的是 unixsocks 传递给 php-fpm 处理 然后把数据拿过来展现 |
32 fengyqf 2016-06-08 13:10:30 +08:00 节点被玩坏了。。。。 话说回来, apache httpd 的功能那一个全面啊,几乎可以干任何事情!而 nginx ,除了速度快效率高之外,就真没什么了,当然正是这一点,让他有了目前的地位。 |
33 mengzhuo 2016-06-08 13:23:24 +08:00 via iPhone 说 nginx 动态不行的用过 lua 么 |
37 jokie 2016-06-08 13:48:11 +08:00 因为懒 |
38 zkaip 2016-06-08 14:09:00 +08:00 Apache 大而全, nginx 小而快, 不谈场景谈应用都是扯淡... |
40 richzhu 2016-06-08 14:27:06 +08:00 多研究些问题,少谈些主义。 |
43 ccming 2016-06-08 14:43:47 +08:00 试着去 stackoverflow 问一下这种问题 |
44 fcicq 2016-06-08 14:44:14 +08:00 @msg7086 资历很重要啊, 有多少不好的东西因为沉没成本早就投下去了, 所以根本换不掉, apache 还没有差到那个地步. 这里的经济帐不能单纯从技术上算. 经验中, 新系统的设计和实现(或者是成本等重要的因素)必须比旧的好 10 倍以上, 才能用一种有损兼容性的方法去更新. 如果旧系统有若干种能够维持兼容性的提升方法肯定会优先采用, 比如硬件升级, 虚拟化等等都能给旧系统延命, 延命后的系统也很难找到优秀 10x 以上的替代品. |
45 cc959798 OP @zhicheng 如果我的表达让你感到偏见了,我深表歉意。但是我真的不是我为了找什么认同观点的人(我问题里有观点吗?),如果你觉得我在引战,你完全可以无视我的存在。最近由于工作需要刚开始做 PHP ,对于我无知还请原谅。但请不要带着偏见看待。我对 ve2x 不是熟悉(至少不常上),不知道 PHP 节点为什么会这样,所以请注意你的措辞。 |
47 lhbc 2016-06-08 15:36:27 +08:00 1. 不是所有公司的运维都懂 nginx, 尤其是中小型企业,或者说,相当一部分公司根本就没专职运维。能照着手册或者文档让 Apache 跑起来已经不容易了 2. 99%的网站(按数量算), Apache 和 nginx 的性能差距实际影响大约为 0 ,因为 PV 根本就没几个 3. Windows 下, Apache 比 nginx 好很多 |
48 zhouzhe8013 2016-06-08 15:52:20 +08:00 够用,简单,在各种老版本的 linux 发布版基本都有 httpd 直接包管理安装,而不像 nginx 需要编译安装. |
49 breeswish 2016-06-08 15:53:25 +08:00 因为性能和流行程度没关系啊 |
span class="no">52 kn007 2016-06-08 16:35:01 +08:00 via Android 因为 apache 配置简单? 反正我用 nginx |
53 strahe 2016-06-08 16:37:10 +08:00 因为中小站长多,因为中小站长写 php 的也多, |
54 qhxin 2016-06-08 16:40:00 +08:00 稳。线程安全。 |
56 TangMonk 2016-06-08 17:14:44 +08:00 via Android 不知道可不可以这样类推,真正有价值的东西都被少数人了解或拥有。 |
57 clino 2016-06-08 17:24:17 +08:00 @cheng007 @Jaylee http://www.rbrussell.com/2014/12/10/nginx-display-full-filename-directory-listing/ 这个问题要改 nginx 代码的,想我从来都是 apt-get 安装的不想去这么折腾 |
58 clino 2016-06-08 17:25:08 +08:00 |
61 MikuM97 2016-06-08 17:47:35 +08:00 总之,有人找我推荐,我的原则就是:先参考你要跑的程序的兼容性。 其次,对于像我自己博客那种一天几个 pv 的情况,随意选择,喜欢哪个用哪个。 如果你的站流量较大, nginx 。 初学者,兼容性 ok 的情况下,还是建议试试 nginx ,毕竟配置比较简单,而且是未来的趋势。 |
62 codespots 2016-06-08 18:11:51 +08:00 @shiny 看到星形头像想到是你,点开资料看到网址确认是你,打开网址,怀疑不是你,百度觅茶集,然后对比域名才发现一个 https 一个 http ,你微博好久没更新了 |
64 Jerry5850022 2016-06-08 19:02:56 +08:00 你觉得,一个日 PV 不过十的小博客需要用 nginx 吗? 能照着 Apache 的手册把服务器配好我都觉得我很牛逼了! |
66 BlueFly 2016-06-08 22:32:56 +08:00 好多人说漏一点,其实 Apache 与 Nginx 在实用性方面最大的区别是伪静态(url rewrite)的支持, Apache 在根目录放个.htaccess 就好了,而且这个.htaccess 还都是各个程序自带和标配的,而 nginx 需要修改 .conf 并且还不一定自带,还需要自己从.htaccess 转换格式。 光这一点上,起码在虚拟主机市场这块, Nginx 就无法占有。 |
68 msg7086 2016-06-08 23:14:34 +08:00 @BlueFly 这不是伪静态支持,而是动态配置文件支持。 好处是灵活,坏处是需要不停扫描磁盘搜索.htaccess (因为有继承所以目录深的时候会大大影响效率)。 |
69 elonsz 2016-06-08 23:16:30 +08:00 https://ooo.0o0.ooo/2016/06/08/57583899d6e66.jpg https://ooo.0o0.ooo/2016/06/08/5758389aa4fbc.jpg |
70 orFish 2016-06-08 23:23:07 +08:00 nginx 处理静态文件有优势 但是处理 php 并不比 Apache 好 |
71 Perry 2016-06-08 23:45:05 +08:00 po 主的 13 个帖子全是问题 |
72 BlueFly 2016-06-08 23:49:31 +08:00 @msg7086 嗯,说得不好。 不过这个方便性在虚拟主机里,无法替代啊,那个虚拟主机服务商能接受不单要手工加入 .conf 还得每次重启一次 Nginx 的事情,光重启 Nginx 就得让其他用户骂死了。 而虚拟主机份额又不少,就算不用 Apache 也得选择完全兼容 .htaccess 的,绝不会选择 Nginx 的 |
73 Narcissu5 2016-06-09 00:05:32 +08:00 楼上有些怕是弄混了 apache httpd 和 apache tomcat , httpd 并没有渲染动态内容的能力 |
75 BlueFly 2016-06-09 00:12:22 +08:00 @skydiver 为什么你不想想虚拟主机的应用场景? 一台主机就一个用户? 不客气的说,上百个用户的不同网站在跑,某个用户的网站也许正在做交易,你服务器莫名其妙重启一次 Nginx ,这影响怎么算? |
77 xierch 2016-06-09 01:19:00 +08:00 |
78 SoloCompany 2016-06-09 01:35:34 +08:00 nginx 定位是 http 协议服务器而不是 web 服务器 因为架构不允许阻塞,所以开发上层服务会很困难,一般更多是是用做反代 /静态资源服务 /缓存 nginx 还可以反代 http 以外的协议,比如 smtp / pop3 / imap 而 apache 则是 http 和 web 服务器的整体,由于允许阻塞,可以直接支持 cgi ,开发上层服务自然是很容易, php 就是个典型 这两者其实并没有太大的可比性 |
79 julor 2016-06-09 07:46:52 +08:00 via Android 楼主,别人老婆比你的漂亮,你怎么不去娶别人老婆!合适才是最重要! |
81 elonsz 2016-06-09 10:18:18 +08:00 div class="reply_content">@xierchhttps://ooo.0o0.ooo/2016/06/08/5758d3c7306f0.jpg https://ooo.0o0.ooo/2016/06/08/5758d3c730408.jpg |
82 ryd994 2016-06-09 12:41:05 +08:00 @BlueFly @skydiver nginx 确实是可以 reload 的,因为端口由 master 进程监听然后传递给 worker ,所以 reload 的时候是: 1. 用新配置启动新 worker 2. 确认新 worker 存活之后停止给旧 worker 派发请求 3. 等旧 worker 完成所有请求,退出 这样新旧交接是理论上无缝的 但是,这并不意味这 nginx 就可以用在虚拟主机里。别的不说,如果有个用户往自己的配置里加点料,谁都 reload 不了。虽然 reload 可以保证新 worker 的活的,但不能保证新 worker 配置合理。 htaccess 的优势就在于就算用户煞笔,不至于影响别人。 |
83 BlueFly 2016-06-09 14:50:50 +08:00 @ryd994 因为我一直是用 restart 而不是 reload 重置 Nginx ,可能这里理解有出入了。不过我的原意是明确,在虚拟主机市场上, Nginx 从来都不是选项,主机商就算不选用 Apache 也一定会选用能兼容 .htaccess 的。而对于市场份额占有来说,主机商选择与否是非常明显的。 Nginx 无法进入虚拟主机市场,份额可想而知。 .htaccess 好处就是傻瓜化自动化,.conf 修改需要一定权限,还需要检验,人肉成本也会增加。无法外包给客服公司去做,这对于像美帝这样硬件成本不值钱,人工成本高的国家是非常要命的。 |
86 shanechiu 2017-12-05 08:33:00 +08:00 via Android 虽然我觉得有些回答很搞笑。这第一个 open topic?总能看到一些人说 Apache 动态处理比 nginx 好,给我个解释或者链接啊!我是个 new fish 啊!这里有很多 new fish 啊。抱歉,抱怨太多。我附上我找到的链接,https://www.digitalocean.com/community/tutorials/apache-vs-nginx-practical-considerations |
87 kaohaonan6666 2018-11-21 16:34:15 +08:00 apache 是先驱者,占领的市场份额是最高的,一些老项目所占比重较大, 但现在最新的高并发高流量项目的 技术选型的趋势一定是 nginx ! |
88 autogen 2019-12-24 06:00:20 +08:00 由于 php-fpm 内存泄漏和崩溃的问题,php 还是搭配 apache 更加稳定,而且网上的 php 入门教程也是 apache+php 的多 java、c++、node、go、python 现在一般都搭配 nginx 了 - |
89 autogen 2019-12-24 06:07:42 +08:00 不过 V 站有多少人用 nginx + c 语言写的 so 来开发网站? |