Nginx location指令和rewrite指令,root和alias

1,location指令

1)用在虚拟服务器server部分,提供来自客户端URI或者内部重定向访问。当一个请求匹配到了server部分,才会进行loaction的查找
2)location指令,属于ngx_http_core_module模块。
3)定义location可以使用prefix string location(前缀字符串),也可以使用regular expresstion location(正则表达式)。
4)nginx首先检查prefix location,使用longest matching prefix最长前缀匹配规则,记住匹配的location,然后使用regular expression正则表达式匹配,根据他们在配置文件中的顺序,一旦匹配成功,则停止检索。
5)语法location [ = | ~ | ~* | ^~ ] uri {...}
location @name {...}
6)modifier修饰符。
= : 精确匹配,匹配成功,则停止搜索正则location; 不能有嵌套的location。可以加速request的处理。
~ : 区分大小写的正则表达式匹配
~ * :不区分大小写的正则表达式匹配
^ ~ :如果longest matching prefix location使用该修饰符,则不进行regular expression的检查。
7)例子
图片请求/images/1.gif ,会匹配location A;/other/1.gif将会匹配 location C; other/1.html将会匹配location B。

location ^~ /image/ {
  //config A
}
location /other/ {
  //config B
}
location ~* \.(jpg | gif | png | jpef)${
 //config C
}

8)slash character (/)
proxy_pass中的/,访问http://oldqi.top/hzq/user.html

location /hzq/ {
  proxy_pass http://backend_server; #结尾不带 `/`,将匹配到http://backend_server/hzq/user.html
}
location /hzq/ {
  proxy_pass http://backend_server/; # 将匹配到http://backend_server/user.html
}

location中的/

location /hzq { # 可以匹配uri `/hzq/index.html和/hzqqqq/index.html`
}
location /hzq/ { #只能匹配到`/hzq/xxx不能匹配/hzqqqq/xxx`
}

2,rewrite指令。

使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。
在server块中,会先执行rewrite部分,然后才会匹配location块。

1)rewrite regex replacement [flag];
作用于server,location,if指令。
2)如果regex匹配到URI,会使用replacement来替换URI;rewrite指令会根据在配置文件中出现的顺序依次执行,可以使用flag来终止接下来的处理。
3)如果replacement以http://或者https://或者$scheme,则停止处理,执行重定向,返回到client。
4)break 和last flag。
last停止执行rewrite模块的指令,并根据rewirte规则重新发起请求。
break停止执行rewrite模块的指令,继续执行块中剩余指令。

image.png

break.txt last.txt test.txt该目录下有三个txt文件。
/mytest/test.txt 返回test
/break/break.txt 返回404
/last/last.txt 返回last
redirect 302临时重定向。
permanent 301永久重定向。

3,alias和root用来指定请求资源的真实路径

1)alias只能位于location块中。
root指令,真实的路径是root指定的值加上location指定的值 。
alias指令,真实路径都是 alias 指定的路径。
2)

location /mytest/ { 
  # 末尾必须带 / 
  alias  /var/hzq/;#请求http://oldqi.top/mytest/1.txt-->http://oldqi.top/var/hzq/1.txt
}
location /mytest/ {
  root /var/hzq;#请求http://oldqi.top/mytest/1.txt-->http://oldqi.top/var/hzq/mytest/1.txt
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 1.ngnix介绍 ngnix www服务软件 俄罗斯人开发 开源 性能很高 本身是一款静态WWW软件 静态小文件...
    逗比punk阅读 2,079评论 1 6
  • 阅读之前,建议先阅读初识 Nginx。 之后,我们来了解一下 Nginx 配置。 抽象来说,将 Nginx 配置为...
    思梦PHP阅读 1,349评论 2 10
  • Nginx rewrite基本语法 Nginx的rewrite语法其实很简单.用到的指令无非是这几个: set i...
    Zhaifg阅读 14,495评论 2 21
  • 1.简介:  Nginx:engine X ,2002年,开源,商业版 http协议:web服务器(类似于ht...
    尛尛大尹阅读 1,858评论 0 3
  • 感恩今天是祖国母亲的生日,也是放假的第一天,祈愿祖国繁荣昌盛,国富民强! 感恩可以帮婆婆在店里看店,感受她的一天生...
    A曼均阅读 46评论 0 0