location中的root和alias的区别

rootalias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。

root的处理结果是:root路径+location路径
alias的处理结果是:使用alias路径替换location路径

alias是一个目录别名的定义,root则是最上层目录的定义。

root实例:

location ^~ /t/ {root /www/root/html/;
}

如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/t/a.html的文件。也就是root路径+location路径

alias实例:

location ^~ /t/ {alias /www/root/html/new_t/;
}

如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/new_t/a.html的文件。注意这里是new_t,因为alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。

注意:

  1. 使用alias时,目录名后面一定要加/
  2. alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
  3. alias只能位于location块中。(root可以不放在location中)

location中的root和server中的root

先上概括: 就近原则

当直接访问服务器,不加其他路径访问时,并且nginx配置中,含有location /{}配置时,nginx的location会优先匹配到此代码块,会指向此代码块中的root , server中的root, 不会生效。当去掉/ 配置,nginx找不到匹配到的location代码块时候,才会才执行server中的root。----也就是就近原则。

和location中的一样在server中的
如果一个请求的URI是/t/a.html时,匹配不到location中的url的时候,web服务器将会返回服务器上的/www/root/html/t/a.html的文件。也就是root路径+请求路径

demo

当第一次访问http://47.105.XXX.XX/


将location / {}去掉再次访问http://47.105.XXX.XX/

反向代理proxy_pass

这个参数是比较常用的,普通的负载均衡也是使用这个参数来实现的

proxy_pass后面可以直接写ip,也可以写upstream的name
proxy_pass最后面如果没有“/”代表将匹配的location也转发过去,如果有“/”则不会携带location规则

比如proxy_pass不带“/”

location /aaa/bbb {proxy_pass http://aaa;
}

则请求/aaa/bbb ->转发 192.168.0.239:9000/aaa/bbb

比如proxy_pass带“/”

location /aaa/bbb {proxy_pass http://aaa/;
}

则请求/aaa/bbb ->转发 192.168.0.239:9000/

配置demo

upstream aaa {server 192.168.0.239:9000;
}server {listen       80;proxy_set_header X-Real-IP           $remote_addr;proxy_set_header X-Forwarded-For     $proxy_add_x_forwarded_for;client_header_buffer_size 10m;location /cloud/ {proxy_pass http://aaa/;proxy_set_header X-Real-IP           $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection  "upgrade";}
}

nginx中root和alias;proxy_pass相关推荐

  1. nginx中root和alias指令的解释

    1 基本信息 功能均为将url映射为文件路径,返回静态文件内容 格式 alias path root path 2 区别 root会映射完整url,会将location匹配的部分,追加到path后面, ...

  2. Nginx中root与alias区别

    Nginx中配置文件路径有两种方式,一种是root一种是alias,那么两种有什么区别呢,下面请跟我一起正确的使用root和alias吧 首先还是先说下他俩的区别,主要是对URI部分处理的不同,如下: ...

  3. nginx中root和alias的区别

    今天使用nginx搭建了一个网站,访问后出现404错误Not found. 上网查了一下原因,是由于nginx的配置不对.因为我是有两个web目录,这两个目录在不同的位置上.而且我不想把两个目录合并在 ...

  4. nginx 中location中root和alias的区别

    nginx指定文件路径有两种方式root和alias,这两者的用法区别,使用方法总结了下,方便大家在应用过程中,快速响应.root与alias主要区别在于nginx如何解释location后面的uri ...

  5. nginx配置中root与alias的区别

    nginx指定文件路径有两种方式root和alias,这两者的用法区别,使用方法总结了下,方便大家在应用过程中,快速响应.root与alias主要区别在于nginx如何解释location后面的uri ...

  6. 详解nginx的root与alias

    文章目录 1. 结论 2. 详解root 2.1 基本用法 2.2 location的最左匹配原则 2.3 index 2.4 nginx location解析url工作流程 2.5 末尾'/' 3. ...

  7. nginx的root和alias指令的区别

    nginx配置下有两个指定目录的执行,root和alias location /img/ { alias /var/www/image/; } #若按照上述配置的话,则访问/img/目录里面的文件时, ...

  8. Nginx里的root/index/alias/proxy_pass的意思

    1.[alias] 别名配置,用于访问文件系统,在匹配到location配置的URL路径后,指向[alias]配置的路径.如:(注意alias配置最后一定要有/,而root可以没有) location ...

  9. nginx配置文件中root和alias

    1.都是用来指定请求资源的真实路径 2.alias 正如其名,alias指定的路径是location的别名,不管location的值怎么写,资源的 真实路径都是 alias 指定的路径       例 ...

最新文章

  1. vrrp虚拟路由冗余协议简图
  2. 逆向工程核心原理学习笔记(十一):栈
  3. Tomcat架构与原理
  4. Android——Android Studio导入SlidingMenu类库的方法
  5. SharePoint【Site Definition 系列】-- 04. 相对快捷地创建List Definition的Schema.xml文件
  6. 6. PHP 正则表达式
  7. MAC编译jogl/gluegen很顺利
  8. java gui 保存文件_用JAVA编写一个GUI记事本程序,实现文本的输入,保存,修改,打开操作...
  9. 一、从0开始——黑客学习路线
  10. php 资深面试题,高级php程序员面试题
  11. EPLAN电气设计实例入门教程pdf
  12. 听说今年金三银四变成金一银二了。。
  13. python半圆_复合半圆环图只要四句代码搞定
  14. qt中将按钮指向的鼠标变成手型
  15. 通过键盘输入(Java语言)
  16. SPCA5XX摄像头驱动源码分析
  17. 管理SQL Server AlwaysOn(5)——常规监控(1)——常规监控
  18. Flutter 组件之AlertDialog、SimpleDialog、showModalBottomSheet、showToast、自定义Dialog
  19. 计算机网络-自顶向下(学习笔记)
  20. 有趣的23000----整理(12)P词根

热门文章

  1. C++Socket接口编程
  2. 智慧学习环境移动智能终端零信任安全机制改进方案
  3. css旋转动画定义中心,旋转时它的旋转中心位置如何 - CSS动画
  4. ubuntu16下快速安装k8s教程与应用示例(django)
  5. 计算机基础知识点整理
  6. 需求分析——数据流图的绘制
  7. 字体下载大宝库:12款好看的免费英文字体
  8. 云队友丨间歇性自律持续性懒散,我们到底做错了什么?
  9. 函数指针和回调函数的简单应用
  10. 浅谈android应用之开发环境