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 1
抬头一看发现是 PHP 节点,于是就不好意思发表意见了
|
15
shiny 2016-06-08 10:56:28 +08:00 via iPhone
那是实验环境下的性能高,你跑真实生产环境,决定性能的基本都不是 web server
|
16
dangyuluo 2016-06-08 10:56:52 +08:00 via iPhone
这是一个多元的世界
|
17
shiny 2016-06-08 11:02:27 +08:00 via iPhone
有常识云:离开剂量谈毒性都是耍流氓。
同样,离开 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 6
为什么有了更好看的 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
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
因为性能和流行程度没关系啊
|
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 1
好多人说漏一点,其实 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 2
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
@xierch
https://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 来开发网站?
|