网站首页 > 技术教程 正文
Nginx入门介绍 Nginx安装与应用入门 Nginx中nginx.conf配置文件详解
location块起到的作用是匹配客户端请求,并分配到相应服务器进行处理;所以location块可以分为两部分匹配和转发。
1.location块匹配语法
location块匹配分为三部分:location关键字+匹配模式修饰符+正则字符串。
(1)匹配模式
包括:以正则字符串开头的匹配模式、与正则字符串完全相同的匹配模式、区分大小写的匹配模式、不区分大小写的匹配模式、其他正则匹配模式等。
a)以正则字符串开头的匹配模式的修饰符:无修饰符和^~;二者的区别^~匹配到客户端请求后,不再尝试匹配其他location块。
客户端请求http://10.10.10.11/test,以下两个都能匹配到。
# location关键字、无匹配修饰符、/test:正则字符串
location /test {
proxy_pass http://xxx.xxx.xxx.xxx/abc;
}
# location关键字、^~匹配修饰符、/test:正则字符串,客户端请求被此location匹配后,将不再匹配其他location块
location ^~ /test {
proxy_pass http://xxx.xxx.xxx.xxx/abc;
}
b)与正则字符串完全相同的匹配模式的修饰符:=
客户端请求http://10.10.10.11/test,以下两个只有第二个可以匹配到。
# location关键字、完全相同的匹配修饰符、/test:正则字符串
location = /test123 {
proxy_pass http://xxx.xxx.xxx.xxx/abc;
}
location = /test {
proxy_pass http://xxx.xxx.xxx.xxx/abc;
}
c)区分大小写的匹配模式的修饰符:~
客户端请求http://10.10.10.11/test,以下两个只有第二个可以匹配到。
# location关键字、区分大小写的匹配模式的修饰符、/test:正则字符串
location ~ /Test {
proxy_pass http://xxx.xxx.xxx.xxx/abc;
}
location ~ /test {
proxy_pass http://xxx.xxx.xxx.xxx/abc;
}
d)不区分大小写的匹配模式的修饰符:~*
客户端请求http://10.10.10.11/test,以下两个都可以匹配到。
# location关键字、不区分大小写的匹配模式的修饰符、/test:正则字符串
location ~* /Test {
proxy_pass http://xxx.xxx.xxx.xxx/abc;
}
location ~* /test {
proxy_pass http://xxx.xxx.xxx.xxx/abc;
}
(2)匹配修饰符优先级
当正则字符串在不同的匹配修饰符号的作用下都可以与客户端的请求匹配时,会出现冲突情况,此时便可以根据匹配修饰符优先级别确定匹配哪个。优先级从高到底依次为:
完全相同的匹配模式修饰符(=)、无匹配修饰符的完全相同匹配模式、以正则字符串开头的匹配模式的修饰符(^~)、不区分大小写的匹配模式的修饰符(~*)和区分大小写的匹配模式的修饰符(~)、以正则字符串开头的匹配模式的无修饰符的情况。
2.location块转发语法
(1)root和alias
语法:root(alias) 待替换的路径
两个命令都是用来重新指定文件的路径,不同的是root为补充式确定文件路径,alias为替换式确定文件路径。
客户端请求http://10.10.10.11/test/10.png,以下两个都可以匹配到,但是得到的转发路径不一样。
# alias 替换式确定文件路径,root补充式替换文件路径
location /test {
alias /abc/cde;
}
location /test {
root /abc/cde
}
经过alias命令得到的请求是:http://10.10.10.11/abc/cde/10.png,经过root命令得到的请求是:http://10.10.10.11/abc/cde/test/10.png
(2)proxy_pass
proxy_pass的功能与root、alias的类似,都是转发到另一个目的地,只不过proxy_pass指向proxy_url。
proxy_url有两种写法,会生成不同代理请求。
例如:客户端请求http://10.10.10.11/test/login.html。
# alias 替换式确定文件路径,root补充式替换文件路径
location /test {
proxy_pass http://127.0.0.1/abc
}
location /test {
proxy_pass http://127.0.0.1/abc/
}
第一种写法可以称之为前截断替换,从匹配字符串前面截断,前面替换为proxy_url。
代理请求为:http://127.0.0.1/abc/test/login.html;
第二种写法可以称之为后截断替换,从匹配字符串后面截断,前面替换为proxy_url。
代理请求为:http://127.0.0.1/abc/login.html;
猜你喜欢
- 2024-10-10 Nginx 实践:location 路径匹配(nginx中location配置)
- 2024-10-10 常规服务器环境怎么搭建及项目部署
- 2024-09-14 决定努力学Nginx/OpenResty详解,location路由规则配置详解了
- 2024-09-14 [译]如何配置Nginx(nginx配置cgi)
- 2024-09-14 蓝易云 - Nginx常用配置及和基本功能详解!
- 2024-09-14 基于centos7系统yum安装nginx服务
- 2024-09-14 蓝易云 - nginx常用配置教程。(蓝云易趋)
- 2024-09-14 nginx配置多个站点使用同一端口(nginx配置多个server_name)
- 2024-09-14 从一份配置清单详解Nginx服务器配置
- 2024-09-14 Nginx 如何配置 SSL(nginx如何配置ssl)
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)