文档章节

Nginx配置中的location、root、alias

阿dai
 阿dai
发布于 2017/08/17 18:44
字数 695
阅读 90
收藏 1

Nginx配置中location、root和alias的关系一直很让人困惑,查询好多资料也没能搞明白,于是自己进行了实际操作,整理一篇小白看的懂得文章!欲知详情,请往下看! (如果你也看懂了,请帮忙点赞!)

mark

Nginx配置中的location、root、alias

location & root

初始配置

[root@adailinux vhost]# cat rio.conf 
server
{
    listen 80;
    server_name rio.com; 
    location /r/
    { 
    root /data/wwwroot/rio.com/;
    }
}

目录结构

[root@adailinux vhost]# tree /data/wwwroot/rio.com/
/data/wwwroot/rio.com/
├── file1.html
└── r
    ├── file2.html
    └── t
        └── file3.html

测试

mark

mark

mark

更改配置

[root@adailinux vhost]# cat rio.conf 
server
{
    listen 80;
    server_name rio.com; 
    location /r/
    { 
    root /data/wwwroot/rio.com/t/;
    }
}

[root@adailinux vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@adailinux vhost]# /usr/local/nginx/sbin/nginx -s reload

测试:

mark

mark

mark

总结

location和root组合相当于在root指定目录下进行location匹配,location所匹配内容必须保证在root指定目录的子目录,否则配置无效,而且location只能向下匹配,不能匹配location指定目录上一级目录中的内容。

location & alias

初始配置

[root@adailinux vhost]# cat rio.conf 
server
{
    listen 80;
    server_name rio.com; 
    location /r/
    { 
    alias /data/wwwroot/rio.com/r/;
    }
}

测试

mark

mark

mark

更改配置

[root@adailinux vhost]# cat rio.conf 
server
{
    listen 80;
    server_name rio.com; 
    location /r/
    { 
    alias /data/wwwroot/rio.com/;
    }
}

[root@adailinux vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@adailinux vhost]# /usr/local/nginx/sbin/nginx -s reload

测试

mark

mark

mark

总结

location与alias组合,需要保证location匹配目录与alias指定目录级别相同,否则配置无效,与location和root组合相同的是,location所匹配内容也只能向下匹配。

注意事项

  1. 使用alias,目录名后面一定要加“/”
  2. alias只能在location中使用

补充:root&alias文件路径配置

root/alias 是指定文件路径的两种方式,主要区别就是怎么解析location后面的uri。
eg: 访问:http://localhost/appImg/abc.jpg

  • root:
location ^~ /appImg/{
    root /home/nginx;
}

这个location相当于访问服务器上的文件路径: /home/nginx/appImg/abc.jpg 。

  • alias:
location ^~ /appImg/{
    alias /home/nginx/;
}

这个location相当于访问服务器上的文件目录:/home/nginx/abc.jpg(即alias不会使用location后面配置的路径)。而且如果alias 指定的是目录,后面一定要加上 "/"。。。

© 著作权归作者所有

共有 人打赏支持
阿dai
粉丝 60
博文 206
码字总数 268477
作品 0
昌平
运维
Nginx的 alias 与 root 的区别

nginx貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。 如果非要给nginx安上一个虚拟目录的说法,那就只有alias标签比较“像”,干脆来说说alias标签和root标签的区...

山哥
2011/08/05
0
0
nginx虚拟目录(alias与root的区别)

nginx貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。 如果非要给nginx安上一个虚拟目录的说法,那就只有alias标签比较“像”,干脆来说说alias标签和root标签的区...

李长春
2012/02/14
0
0
nginx中的root和alias区别

nginx貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。 如果非要给nginx安上一个虚拟目录的说法,那就只有alias标签比较“像”,干脆来说说alias标签和root标签的区...

周云台
04/01
0
0
nginx文件路径设置(root、alias)

文章来源:《nginx从入门到精通》 nginx指定文件路径的两种方式,root和alias;主要区别在于nginx如何解释location后的URI,以不同的方式将请求映射到服务器文件。 1. root 语法:root path...

辛笑笑
01/11
0
0
Nginx将utf8编码的url解码成\x的16进制格式导致无法匹配静态文件的问题处理

例如请求/touch/article/北京/full.html,到达nginx后变成/ /touch/article/%E5%8C%97%E4%BA%AC/full.html, Nginx静态文件配置: location ~ ^/touch/article/..html$ { expires -1; root ......

hellooworld
2016/10/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jQuery学习笔记180924

jQuery - AJAX 简介 什么是 AJAX? AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。 简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示...

颖伙虫
18分钟前
1
0
springboot整合vue小试牛刀

序 本文主要研究一下如何在springboot工程整合vue maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-we......

go4it
19分钟前
1
0
使用python的profiler工具

主要用来检测python coding的执行时间 fly profiler

steel7c4
23分钟前
0
0
大数据日知录笔记

硬件成本的快速下降,使得电子设备的无处不在成为可能,数据无处不在,无时不在. IBM用3V(Volume,Velocity,Variety)来描述大数据的特点,后来又增加了Value这个维度,即价值密度低的数据成为大数据...

凌渡
32分钟前
0
0
IDEA、WebStorm最新永久激活方式

今天早上一大早打开IDEA发现激活已过期,遂开始寻找激活码。但是一直不成功,后来终于找到一种比较靠谱的激活方式。在此记录下来,以备不时之需。 目前网上现有的激活方式大概有这么三种 激活...

耒耒耒耒耒
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部