为什么我一直用Apache而不用Nginx?

王志勇 发表于 2019年04月09日 10:51

因为Nginx离完美,只差小小的一步:Nginx一是不支持.htaccess;二是不支持404页伪静态。这2项,Apache都完美支持。大部分中文博客都不约而同地用Nginx。Nginx的伪静态,是在Nginx的配置文件里实现。在配置文件写入的语句,是对整个VPS或者整个服务器的全局设置。而.htaccess,是仅对当前目录、以及当前目录的所有子目录有效:即如果.htaccess是放在网站根目录,则对整个网站有效。如果是放在网站的某个目录下如/abc,则不会对整个网站产生作用,仅对/abc这个目录和它的所有子目录有效。

很少人研究.htaccess的用法,因为大部分人是将.htaccess放在网站的根目录,使用Rewrite模块来实现博客、论坛的伪静态,404页伪静态极少人用。而对于开发者而言,.htaccess能够实现各种不可思议的URL美化技术。

为什么会突然想到这个问题?因为昨天申请了一个免费的香港阿里云空间,服务器是CentOS 7.3+Nginx 1.6。由于我都是使用.htaccess的404页伪静态,在Nginx下无法支持,所以我只能用Apache。

(香港空间的速度,那是真的快。)

Nginx与.htaccess的关系,我之前写过一篇博客:http://www.auiou.com/relevant/00000888.jsp

16条评论:
1   angel2018 2019-04-09 13:40
nginx没用过,刚接触vps,照着网上文章布置网站,边装apache,也装nginx,估计装了一半,或根本没装列,然后照着文章安装,网站塔起来了,再后来apache ,It work! 测试页出来了,然后就错过nginx了!哈哈!看看回头有没有机会,说不定会用上。

勇哥,阿里免费空间速度怎么样,免费一年吗?


自由勇 2019-04-09 14:12
是的,免费一年,在这里申请 https://www.vpsmm.com/8220.shtml
因为是Nginx,申请了也用不上,只能吃灰,速度真不错。

2   angel2018 2019-04-09 15:22
好,谢谢,我看看。
3   angel2018 2019-04-09 17:13
刚刚试了,速度确实挺快,不比自己的VPS差,哈哈。

自由勇 2019-04-09 19:04
是的,是vpsmm捐出10台主机给网友当免费空间用,其实和收费空间一样。

4   朱锦明 2019-04-09 21:42
但vpsmm空间只有100mB,有点小。
5   朱锦明 2019-04-09 21:43
看错了,是200MB。
6   朱锦明 2019-04-09 21:46
只有100-200空间,一般用作测试,还是另有用途??

自由勇 2019-04-09 22:01
可以用来测试,支持PHP。
因为不支持.htaccess,所以我个人用不上。

7   笛声 2019-04-10 10:35
nginx可以对不同目录使用不同伪静态的。
location /abc/ { try_files $uri $uri/ /index.php?$args; }
404页伪静态是什么个情况?
当404的时候跳转到自定义页面,而不是由web服务程序显示默认的404吗?

我那边的友链改了,你那个“每天启航”的链接删了,换了你这个站点的链接。。

自由勇 2019-04-10 10:45
谢谢!我正好需要找时间告诉你,每天启航 今年不续费了,还是用这个主站。

自由勇 2019-04-10 10:50
404页伪静态,大约10多年前用的人比较多,现在很少见到有人用,我想最大的原因是失传了,10多年前很多的开发者现在可能已经不做了或者转行了,现在大部分人用的是Rewrite模块来实现伪静态。
404页伪静态,是在.htaccess里设置,指定找不到实体文件时,指向一个php文件,该php文件写入这句让404错误码转成200正常代码:header('HTTP/1.1 200 OK');。
然后,伪静态是在php程序里编写规则(获取地址栏里的相关字符),能实现很复杂的伪静态,与Rewrite相比有2个优点,一是Rewrite必须用正则表达式,较为复杂;二是404页伪静态节省了一个调用Rewrite模块。

个人感觉404页伪静态比Rewrite伪静态好用很多。我在开发中用的伪静态,也全部是404页伪静态。

自由勇 2019-04-10 11:01
例如这2图的地址栏(可点击放大),都是用404页伪静态实现的:(PHP里将页面设定为200代码)

8   小米布(隔开) 2019-08-21 15:52
哥哥,这个时代开发模式都变了吧, .ht文件已经被程序内部mvc消灭了。 使用.ht文件都是好老的程序了吧

自由勇 2019-08-22 07:27
.htaccess是很底层的重要功能。

9   无名氏 2021-06-03 08:59
Nginx的伪静态是可以针对每个项目设置的,并且也有404或者502等等的一些错误状态处理,

发表评论:
名字: (*必填)
博客: (可省)

正文:

  记住信息?

王志勇:1980-09-26 (44周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +

2020年 +
2019年 +
2018年 +
2016年-2017年(9)
2014年06月-09月(10)
2013年 +
2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2024 auiou.com All rights reserved.
此Blog程序由王志勇编写