您的位置:首页 > 运维架构 > Nginx

Apache 服务器和 Nginx 服务器使用“路径别名”的异同

2014-06-01 22:08 267 查看
一、Apache 服务器;
使用的指令: Alias /webpath /full/filesystem/path
是由”alias_module 模块,提供路径别名的功能的。
所以,如果模块 alias_module 不存在,提供“路径别名”也是没有用的,甚至会报错“404 Not Found”。所以要先判断下该模块是否存在。
由于 Apache 提供指令“<IfModule>” 判断模块是否存在, 存在则使用“路径别名”
<IfModule alias_module>
Alias /bbs   /lvm/html
</IfModule>
Apache 必须使用 <Directory filepath> 容器提供访问权限,才能通过 http://192.168.203.99:8080/bbs 访问路径别名下的网页文件的。
否则会报: 403 Forbidden
# need to provide a <Directory> section to allow access to the filesystem path.
[root@node2 ~]# curl -I http://192.168.203.99:8080/bbs/index.php HTTP/1.1 403 Forbidden      #------>  错误代码 403
Date: Mon, 12 May 2014 02:03:58 GMT
Server: Apache
Content-Type: text/html; charset=iso-8859-1
增加文件系统路径允许访问权限:
<IfModule alias_module>
Alias /bbs   /lvm/html
</IfModule>
<Directory /lvm/html>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
再次测试是否能够正常访问?
[root@node2 ~]# curl -I http://192.168.203.99:8080/bbs/index.php HTTP/1.1 200 OK       #-------> 响应码:200
Date: Mon, 12 May 2014 02:05:41 GMT
Server: Apache
X-Powered-By: PHP/5.3.10
Content-Type: text/html
所以,Apache 服务器的"路径别名"定义:
开启提供路径别名的模块----->定义路径别名---->提供路径的访问权限。

二、Nginx 服务器;
Nginx 服务器定义路径别名比较简单;
但是“alias ”指令只能用在“location ”段里。
location /bbs {
alias  /lvm/bbs;
}
[root@node2 ~]# curl -I http://192.168.203.99/bbs/index.html HTTP/1.1 200 OK
Server: nginx
Date: Mon, 12 May 2014 02:22:00 GMT
Content-Type: text/html
Content-Length: 31
Last-Modified: Mon, 12 May 2014 02:16:02 GMT
Connection: keep-alive
Accept-Ranges: bytes
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Apache Nginx Forbidden alais