nginx配置中的 root 和 alias的区别,路径末尾有无斜杠/ 的区别

nginx 配置中的/

一.proxy_pass 路径结尾有无/ 的区别:

  1. 不带斜杠/

    location /api/ {
        proxy_pass https://www.test.com;
    }
    

    这种情况下,Nginx会将会按照原始路径进行拼接

    例如:

    请求:http://www.aaa.com/api/getData 会被转发到:https://www.test.com/api/getData (注意: 转发后的路径中包含匹配路径)

  2. 带斜杠/

    location /api/ {
        proxy_pass https://www.test.com/;
    }
    

    这种情况下,Nginx会将请求路径去掉匹配的部分(这里指的就是 /api/),然后将路径剩余部分拼接到proxy_pass 后面的路径

    例如:

    请求:http://www.aaa.com/api/getData 会被转发到:https://www.test.com/getData (注意: 转发后的路径中不包含匹配路径)

二.location 是否以斜杠/结尾的区别

  1. 不带斜杠/

    location /api {
        proxy_pass https://www.test.com;
    }
    

    这个配置会匹配以/api开头的所有请求,例如:/api、/api/index、 /api/index/getxx

  2. 带斜杠/

    location /api/ {
        proxy_pass https://www.test.com;
    }
    

    这个配置会匹配/api/开头的所有请求,例如:/api/index、 /api/index/getxx 等,但是不会匹配仅/api的请求

三. 静态资源映射时,rootalias 的区别

root

  • 作用范围root 指令设置一个根目录,后续的 URI 会相对于这个根目录进行解析。
  • 使用场景:适用于需要将 URI 直接映射到文件系统路径的情况。
location /images/ {
    root /var/www/html;
}

root 设置为 /var/www/html,请求 /images/pic.jpg 会映射到 /var/www/html/images/pic.jpg

root 会 将匹配路径直接附加到目录后面

alias

location /images/ {
    alias /var/www/static;
}

alias 设置为 /var/www/static,请求 /images/pic.jpg 会映射到 /var/www/static/pic.jpg

alias 会将请求路径中匹配路径的后半部分直接拼接到alias路径后

注意:root 指令的路径末尾是否有 /,在大多数情况下没有区别。Nginx 会自动处理路径末尾的 /

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值