Nignx入门location、root配置
nginx的配置.首当其冲的就是location配置了,下面是笔记参考的博文链接点这里
location匹配的是nginx的哪个变量?
$request_uri (这个不懂怎么用)
location的匹配种类有哪些?
格式 location [ 空格 | = | ~ | ~* | !~ | !~* ] /uri/ {} # 精确匹配: 相等(=) # 字符串匹配: 字符串匹配(空格) 匹配开头(^~) # 正则匹配: 区分大小写匹配(~) 不区分大小写匹配(~*) 区分大小写不匹配(!~) 不区分大小写不匹配(!~*)
location搜索优先级优先级如何?(这个是重点)
精确匹配 >
字符串匹配( 长 > 短 [ 注: ^~ 匹配则停止匹配 ]) >
正则匹配( 上 > 下 ) # 精确匹配只能命中一个 # 字符串匹配使用匹配最长的最为匹配结果 # 正则匹配按照location定义的顺序进行匹配,先定义具有高优先级
特别注意(这里要看清楚): 字符串匹配优先搜索,但是只是记录下最长的匹配 ( 如果 ^~ 是最长的匹配,则会直接命中,停止搜索正则 ),然后继续搜索正则匹配,如果有正则匹配,则命中正则匹配,如果没有正则匹配,则命中最长的字符串匹配.
具体详细的案例博文上有,在这里我就不copy下来了
下午被root指令的问题搞残了,百度了下才知道原委
这是参考博文的链接点这里
location /img/ { alias /var/www/image/; } #若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件
location /img/ { root /var/www/image; } #若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件。]
注:alias与root最主要的差别就在于多了黄色背景块
alias是一个目录别名的定义,root则是最上层目录的定义。
还有一个重要的区别是alias后面必须要用“/”结束,否则会找不到文件的。。。而root则可有可无~~