最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
nginx location 配置方法总结
时间:2014-06-20 编辑:简简单单 来源:一聚教程网
一、location [=|~|~*|^~|@] /uri/ { ... }
1、~ 为区分大小写匹配
2、~* 为不区分大小写匹配
3、!~ 为区分大小写不匹配
4、!~* 为不区分大小写不匹配
5、= 开头表示精确匹配
6、/ 通用匹配,所有请求都会被匹配到
有多个location配置的情况下,先走 = ,然后是^~,其他的则按书写顺序来依次匹配,最后是通用匹配 / ;
代码如下 | 复制代码 |
nginx不对url进行编码,例如:/20%/ 可以被 / / 匹配到。 示例: 匹配所有请求,因为请求都是以/开头 仅仅匹配 / |
匹配过程如下:
第一步:进行字符串匹配,找到最合适的那一个
第二步:进行正则表达式匹配,找到匹配上的第一个
第三步:如果第二步匹配上了,则用第二步匹配的结果,否则用第一步匹配的结果
从上面可以看出来,正则表达式的优先级要高一些
二、rewrite 语法
last - 基本上都用这个Flag。
break - 中止Rewirte,不在继续匹配
redirect - 返回临时重定向的HTTP状态302
permanent - 返回永久重定向的HTTP状态301
1、下面是判断表达式:
-f 和 !-f 用来判断是否存在文件
-d 和 !-d 用来判断是否存在目录
-e 和 !-e 用来判断是否存在文件或目录
-x 和 !-x 用来判断文件是否可执行
全局变量:
2、下面是可以用作判断的全局变量示例
代码如下 | 复制代码 |
例:http://www.111com.net /post.php |
配置示例:
代码如下 | 复制代码 |
server{ |
例子
代码如下 | 复制代码 |
location = / { location ^~ /images/ { location ~* .(gif|jpg|jpeg)$ { |
实际测试,下面为一个完整的nginx域名配置,使用return来进行区分匹配上哪个location
代码如下 | 复制代码 |
server{ location = / { return 100;} 解释:先进行"="的完全匹配,如果匹配上,则搜索停止 解释:正则表达式没有匹配上,就是用字符串匹配
解释:正则表达式匹配上了,停止搜索 解释:字符串匹配上了,正则表达式匹配上了,但是优先使用正则表达式匹配 |
例子请求:
代码如下 | 复制代码 |
/ -> configuration A /documents/document.html -> configuration B /images/1.gif -> configuration C /documents/1.jpg -> configuration D |
注意:按任意顺序定义这4个配置结果将仍然一样。
(location =) > (location 完整路径 ) >(location ^~ 路径) >(location ~*, ~ 正则) >(location 部分起始路径) 正则表达式根据配置文件中的前后顺序影响匹配, 前面的优先匹配. 其它则根据匹配长度来优先匹配.
-
上一个: 苹果mac os显示隐藏文件的方法
-
下一个: zabbix 触发器使用教程详解
相关文章
- ubuntu 下的nginx服务器配置详解 06-27
- Docker实战web应用-Nginx镜像与容器的创建、配置和管理 09-25
- Nginx Google 代理模块Upstreaming配置详解 09-12
- Nginx的http和https(ssl)共存配置方法 07-23
- nginx配置免费的ssl证书,支持https安全访问 07-16
- nginx使用GoDaddy ssl证书配置详解 06-06