服务器的“⽂件系统路径”和“URL”详解
最常⽤的配置段是针对“⽂件系统”和“⽹络空间(URL)”特定位置的配置段。⾸先必须理解“⽂件系统”和“⽹络空间”这两个概念的区别。
1、⽂件系统是指操作系统所看见的磁盘视图。
⽐如:在 Unix 或 Linux ⽂件系统中,Apache 会被默认安装到 /usr/local/apache2 ⽬录下。
nginx和apache区别2、相反,“⽹络空间”是⽹络被 Web 服务器发送及被客户在浏览器中所看到的视图。
所以,如果 <Location> 中的路径为 /dir/ ,那么在 Apache 采⽤默认安装路径的情况下,对应 Unix 或 Linux ⽂件系统的本地路径则
为“/usr/local/apache2/htdocs/dir/”。由于⽹页可以从数据库或其他地⽅动态⽣成,因此,⽹络空间⽆须直接映射到⽂件系统。
Apache 和 Nginx 服务器的资源,在“⽂件系统空间”和“⽹络空间”的位置是怎么标识的呢?
1、Apache 服务器:
Apache 服务器定义资源在"⽂件系统中"的位置使⽤的指令是:
定义⽹页⽂件的根⽬录指令:  DocumentRoot
⽬录级别:“<Directiory file-path>...</Directiory>” 和 正则表达式版本 “<DirectoryMatch>”
⽂件级别:“<Files> ”和正则表达式版本“<FilesMatch>”
Apache 服务器标识资源的"⽹络空间"使⽤的指令是:
“<Location URL-path>...</Location> ”和 正则表达式版本 “<LocationMatch> ” 也称为:⽹络空间容器,做 uri 地址匹配的。
2、Nginx 服务器:
定义⽹页⽂件的根⽬录指令: root path    ------> 也是定义资源在⽂件系统中的位置。
Nginx 标识资源的“⽹络空间”使⽤的指令是:location [ =|~|~*|^~|@ ] /uri/ { ... }  -----> 做 uri 地址匹配
location配置:
location 表⽰匹配到不同资源时候,它对应的属性定义的。 在server 段中⾄少有⼀个location 段,可以有多个。对于特定的请求,⼀旦nginx匹配⼀个location来处理。那么这个请求的响应内容就会由这个location块中的指令决定。
1 2 3location / { ......
}
1 2 3 4location / {
root  html;
index  index.html index.htm; }
在这个例⼦中⽂档根(doucument root)位于html/⽬录。根据nginx的安装⽬录/usr/local/nginx,这个"location”的完整路径
是:/usr/local/nginx/html 。假设⼀个请求访问位于/blog/includes/styles.css⽂件同时没有别的location块匹配,那么nginx会⽤位于⽂件系的/usr/local/nginx/html/blog/includes/styles.css响应。当然你也可以⽤绝对路径设置root指令。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。