Nginx root&alias文件路径配置解析

Nginx root&alias文件路径配置解析

  • nginx在指定文件路径有两种方式root和alias,这两种的主要区别在于nginx如何解析location后面的uri,这会使两者分别以不同的方式请求映射到服务器的文件上。

1.root语法的使用

【root】
语法: root path
默认值: root html
配置段: http/server/location/if
例子:

location ^~/chen/ {
    root /data/www/www.chen.com;
    autoindex on;
    auto_basic "Restricted";
    auto_basic_user_file passwd/chen;
}

例子解析:
  如果请求的uri是/chen/httplogs/www.chen.com-access.log时,web服务器将会返回服务器上的“/data/www/www.chen.com”(root的path)+“/chen/httplogs/www.chen.com-access.log”的文件。也就是说root路径配置会根据完整的uri请求来映射,也就是/path/uri

2.alias语法的使用

【alias】
语法:alias path
配置段:location
例子:

location ^~ /binapp/ {
    limit_conn limit 4;
    limit_rate 200k;
    internal;
    alias /data/statics/bin/apps/;
}

例子解析:
  alias会把location后面配置的路径丢弃,把当前匹配到的目录指向到指定的目录。如果一个请求的uri是/binapp/a.chen.com/favicon时,web服务器将会返回服务器上的“/data/statics/bin/apps/”+“a.chen.com/favicon.html”的文件。

  alias使用总结:

  • 使用alias时,目录名后面一定要加“/”
  • alias可以指定任何名称
  • alias在使用正则表达式时,必须捕捉要匹配到的内容并在指定的内容处使用
  • alias只能位于location块中。
nginx中,rootalias都用于指定静态文件的根目录,但它们的用法和效果略有不同。 1. rootnginx配置文件中,root指令用于指定静态文件的根目录。例如: ``` server { listen 80; server_name example.com; root /var/www/example.com; } ``` 这里的root指定了example.com域名下静态文件的根目录为/var/www/example.com。当用户访问http://example.com时,nginx会在/var/www/example.com目录中寻找相应的静态文件,如index.html。 需要注意的是,root指令所指定的路径是相对于nginx配置文件路径。因此,如果nginx配置文件位于/etc/nginx目录下,而静态文件的根目录位于/var/www/example.com目录下,则root指令应写成: ``` root /../../var/www/example.com; ``` 其中的”../”表示向上一级目录。 2. alias alias指令也用于指定静态文件的根目录,但它的用法和效果略有不同。alias指令可以将请求的URL路径映射到服务器上的实际文件路径。例如: ``` server { listen 80; server_name example.com; location /img/ { alias /var/www/example.com/static/img/; } } ``` 这里的alias指定了URL路径/img/映射到/var/www/example.com/static/img/目录下的静态文件。当用户访问http://example.com/img/logo.png时,nginx会在/var/www/example.com/static/img/目录下寻找相应的静态文件,如logo.png。 需要注意的是,alias指令所指定的路径是绝对路径。因此,如果alias指令所指定的路径是/var/www/example.com/static/img/,则在nginx配置文件中应写成: ``` alias /var/www/example.com/static/img/; ``` 而不是: ``` alias ../../var/www/example.com/static/img/; ``` 因为alias指令不会将路径解析为相对路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值