前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx配置中的location、root、alias

Nginx配置中的location、root、alias

作者头像
阿dai学长
发布2019-04-03 11:06:30
8.7K2
发布2019-04-03 11:06:30
举报
文章被收录于专栏:阿dai_linux阿dai_linux

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

Nginx配置中的location、root、alias

location & root

初始配置

代码语言:javascript
复制
[root@adailinux vhost]# cat rio.conf 
server
{
    listen 80;
    server_name rio.com; 
    location /r/
    { 
    root /data/wwwroot/rio.com/;
    }
}
目录结构
代码语言:javascript
复制
[root@adailinux vhost]# tree /data/wwwroot/rio.com/
/data/wwwroot/rio.com/
├── file1.html
└── r
    ├── file2.html
    └── t
        └── file3.html
测试

更改配置

代码语言:javascript
复制
[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
测试:

总结

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

location & alias

初始配置

代码语言:javascript
复制
[root@adailinux vhost]# cat rio.conf 
server
{
    listen 80;
    server_name rio.com; 
    location /r/
    { 
    alias /data/wwwroot/rio.com/r/;
    }
}
测试

更改配置

代码语言:javascript
复制
[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
测试

总结

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:
代码语言:javascript
复制
location ^~ /appImg/{
    root /home/nginx;
}

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

  • alias:
代码语言:javascript
复制
location ^~ /appImg/{
    alias /home/nginx/;
}

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

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017/08/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Nginx配置中的location、root、alias
    • location & root
      • 初始配置
      • 更改配置
      • 总结
    • location & alias
      • 初始配置
      • 更改配置
      • 总结
    • 注意事项
      • 补充:root&alias文件路径配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档