nginx配置中location的语法
2016-06-15 15:15
253 查看
语法: location [=|~|~*|^~|@] /uri/ {......}
配置块: server
localtion 会尝试根据用户请求的URI 来匹配上面的/uri 表达式,如果可以匹配,就选择 location {}块中的配置来处理用户请求. 当然匹配的方式是多样的,下面介绍location的匹配规则.
1.
= 表示把URI作为字符串,以便与参数中的uri做完全匹配.
例如: location = / {
#只有当用户请求的是 / 时,才会使用改location下的配置
. . . . . .
}
2.
~ 表示匹配URI时,字母大小写是敏感的.
3.
~*
[b]表示匹配URI时,忽略字母大小写的问题.[/b]
[b]4.
^~ [b][b]表示匹配URI时[/b]只需要其前半部分与uri参数匹配即可.
[/b][/b]
例如: location ^~ /images/ {
#以 /images/ 开始的请求都会配上
. . . . . .
}
5.
@ 表示仅用于Nginx服务器内部请求之间的重定向, 带有@的location不直接处理用户请求.
当然, 在uri中的参数是可以用正则表达式的,例如:
location ~* \.(gif|jpg|jpeg)$ {
#匹配以 .gif .jpg .jpeg 结尾的请求
. . . . . .
}
注意:location是有顺序的,当一个请求可能匹配多个location时,实际上请求会被第一个location处理.
注意:在以上各种匹配方式中,都只能表达为 "如果匹配.....则....." ,如果需要表达 "如果不匹配....则...." ,就很难直接做到. 有一种解决方式就是在最后一个location中使用/作为参数,它会匹配所有的HTTP请求,这样就可以表示如果不能匹配前面所有的location,则由
"/" 这个location处理.
例如:location / {
# / 可以匹配所有请求
. . . . . .
}
配置块: server
localtion 会尝试根据用户请求的URI 来匹配上面的/uri 表达式,如果可以匹配,就选择 location {}块中的配置来处理用户请求. 当然匹配的方式是多样的,下面介绍location的匹配规则.
1.
= 表示把URI作为字符串,以便与参数中的uri做完全匹配.
例如: location = / {
#只有当用户请求的是 / 时,才会使用改location下的配置
. . . . . .
}
2.
~ 表示匹配URI时,字母大小写是敏感的.
3.
~*
[b]表示匹配URI时,忽略字母大小写的问题.[/b]
[b]4.
^~ [b][b]表示匹配URI时[/b]只需要其前半部分与uri参数匹配即可.
[/b][/b]
例如: location ^~ /images/ {
#以 /images/ 开始的请求都会配上
. . . . . .
}
5.
@ 表示仅用于Nginx服务器内部请求之间的重定向, 带有@的location不直接处理用户请求.
当然, 在uri中的参数是可以用正则表达式的,例如:
location ~* \.(gif|jpg|jpeg)$ {
#匹配以 .gif .jpg .jpeg 结尾的请求
. . . . . .
}
注意:location是有顺序的,当一个请求可能匹配多个location时,实际上请求会被第一个location处理.
注意:在以上各种匹配方式中,都只能表达为 "如果匹配.....则....." ,如果需要表达 "如果不匹配....则...." ,就很难直接做到. 有一种解决方式就是在最后一个location中使用/作为参数,它会匹配所有的HTTP请求,这样就可以表示如果不能匹配前面所有的location,则由
"/" 这个location处理.
例如:location / {
# / 可以匹配所有请求
. . . . . .
}
相关文章推荐
- 一深入理解Nginx的 模块化 ,全局观
- Nginx 从0开始学
- nginx: [alert] kill(1668, 1) failed (3: No such process)的解决办法及nginx服务常用命令总结
- centos中nginx按日期自动分割访问日志
- Nginx配置正向代理
- Linux安装Nginx
- nginx 禁止某个IP访问
- nginx location配置说明
- nginx和php文件大小限制修改
- centos6.x中yum安装nginx
- nginx启动、关闭、重启
- Nginx如何隐藏index.html
- 彻底删除nginx
- nginx下无法打开php,报错[error] 5040#0: *1 connect() failed (111: Connection ref ...
- CentOs6.5 安装Nginx 负载均衡软件总结
- nginx+thinkphp3.2.3伪静态配置
- nginx-upload-module模块实现文件断点续传
- nginx负载均衡集群
- Nginx 常用全局变量 及Rewrite规则详解
- linux 安装nginx(亲测)