• Nginx配置中的location、root、alias


    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

    测试

    更改配置

    [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

    初始配置

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

    测试

    更改配置

    [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:
    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 指定的是目录,后面一定要加上 "/"。。。

  • 相关阅读:
    求一个数字各个位的数字之和
    二进制和十进制的转换 分别用python和js实现
    pymysql 获取插入数据的主键id
    js03.事件
    02.js运算符
    jsonpath
    01.js控制台
    2.命令补充
    hashmap
    正则表达式的补充
  • 原文地址:https://www.cnblogs.com/allmdzz/p/15243374.html
Copyright © 2020-2023  润新知