nginx中root和alias;proxy_pass
location中的root和alias的区别
root
与alias
主要区别在于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
后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。
注意:
- 使用
alias
时,目录名后面一定要加/
。 alias
在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。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相关推荐
- nginx中root和alias指令的解释
1 基本信息 功能均为将url映射为文件路径,返回静态文件内容 格式 alias path root path 2 区别 root会映射完整url,会将location匹配的部分,追加到path后面, ...
- Nginx中root与alias区别
Nginx中配置文件路径有两种方式,一种是root一种是alias,那么两种有什么区别呢,下面请跟我一起正确的使用root和alias吧 首先还是先说下他俩的区别,主要是对URI部分处理的不同,如下: ...
- nginx中root和alias的区别
今天使用nginx搭建了一个网站,访问后出现404错误Not found. 上网查了一下原因,是由于nginx的配置不对.因为我是有两个web目录,这两个目录在不同的位置上.而且我不想把两个目录合并在 ...
- nginx 中location中root和alias的区别
nginx指定文件路径有两种方式root和alias,这两者的用法区别,使用方法总结了下,方便大家在应用过程中,快速响应.root与alias主要区别在于nginx如何解释location后面的uri ...
- nginx配置中root与alias的区别
nginx指定文件路径有两种方式root和alias,这两者的用法区别,使用方法总结了下,方便大家在应用过程中,快速响应.root与alias主要区别在于nginx如何解释location后面的uri ...
- 详解nginx的root与alias
文章目录 1. 结论 2. 详解root 2.1 基本用法 2.2 location的最左匹配原则 2.3 index 2.4 nginx location解析url工作流程 2.5 末尾'/' 3. ...
- nginx的root和alias指令的区别
nginx配置下有两个指定目录的执行,root和alias location /img/ { alias /var/www/image/; } #若按照上述配置的话,则访问/img/目录里面的文件时, ...
- Nginx里的root/index/alias/proxy_pass的意思
1.[alias] 别名配置,用于访问文件系统,在匹配到location配置的URL路径后,指向[alias]配置的路径.如:(注意alias配置最后一定要有/,而root可以没有) location ...
- nginx配置文件中root和alias
1.都是用来指定请求资源的真实路径 2.alias 正如其名,alias指定的路径是location的别名,不管location的值怎么写,资源的 真实路径都是 alias 指定的路径 例 ...
最新文章
- vrrp虚拟路由冗余协议简图
- 逆向工程核心原理学习笔记(十一):栈
- Tomcat架构与原理
- Android——Android Studio导入SlidingMenu类库的方法
- SharePoint【Site Definition 系列】-- 04. 相对快捷地创建List Definition的Schema.xml文件
- 6. PHP 正则表达式
- MAC编译jogl/gluegen很顺利
- java gui 保存文件_用JAVA编写一个GUI记事本程序,实现文本的输入,保存,修改,打开操作...
- 一、从0开始——黑客学习路线
- php 资深面试题,高级php程序员面试题
- EPLAN电气设计实例入门教程pdf
- 听说今年金三银四变成金一银二了。。
- python半圆_复合半圆环图只要四句代码搞定
- qt中将按钮指向的鼠标变成手型
- 通过键盘输入(Java语言)
- SPCA5XX摄像头驱动源码分析
- 管理SQL Server AlwaysOn(5)——常规监控(1)——常规监控
- Flutter 组件之AlertDialog、SimpleDialog、showModalBottomSheet、showToast、自定义Dialog
- 计算机网络-自顶向下(学习笔记)
- 有趣的23000----整理(12)P词根