server段的location指令:

语法规则:
location [=|~|~|!~|!~|^~|/] /uri/
{
configuration
}

说明:
= 是精确匹配,只有完全匹配才会执行 configuration。
~ 开头是区分大小写匹配成功才执行configuration。
~* 开头是不区分大小写匹配成功才执行configuration。
!~ 开头是区分大小写不匹配成功才执行configuration。
^~ 表示匹配以一个字符或字符串开头成功才执行configuration。

location配置优先级别

匹配规则有如下几种类型:

普通匹配:
= URI { configuration } #精确匹配或完全匹配
~ / URI { configuration } #通用匹配,当有多个location匹配时,当所有都不匹配时将匹配 /
“ ”URI { configuration } #空格匹配
^~ URI { configuration } #前缀匹配
~*$ URI { configuration } #后缀匹配

正则表达式匹配:
~ URI { configuration } #区分大小写匹配
~ URI { configuration } #不区分大小写匹配
!~ URI { configuration } #区分大小写不匹配
!
~ URI { configuration } #不区分大小写不匹配

以上几种匹配规则的优先级:
整体上先进行普通匹配,再进行正则匹配,如果正则不匹配,就退回到上一个普通匹配。普通匹配没有顺序限制,哪个location的表达式最匹配最精准,就使用哪个location的configuration。

= 精确匹配的优先级别最高,会最先匹配,一旦匹配成功,将不再匹配其他location规则。
若精确匹配不成功,则进行普通匹配。
如果普通匹配有多个匹配且命中多个匹配,则使用表达式最长的记录结果(例如:^~ /a和^~ /aaa.其中^~ /aaa为最长表达式),结束后续匹配。
如果普通匹配没有成功,则进行正则匹配。匹配顺序按照书写顺序从上到下进行匹配,一旦匹配成功一个就结束后续匹配。
如果正则匹配未成功,则退回到普通匹配进行匹配,普通匹配没有顺序限制,按照location后的表达式的长短来确定命中结果。

root,alias和try_fiels的指令:

语法:
root path
配置段:http,server,location,if

语法:
alias path
配置段:location

假如访问地址是: http://www.XXX.com/a/
例如:
location ~ /a/ {
root /var/www/
}

完整的URL结果是:root指令之后的路径+location之后的URI:/a/,即 /var/www/a/

假如访问地址是: http://www.XXX.com/a/test.html
location ~ /a/ {
alias /var/www/
}

完整的URL结果是:alias指令后面的路径+location后面表达式匹配到的目录或文件。即:/var/www/test.html
需要注意的是使用alias时目录后面要加/,不然会找不到。

(网上博客摘抄)
基本语法:   try_files file1[file2 file3 ...] uri 或 try_files file1 [file2 file3 ...] = code
解释:    file :文件或文件路径(文件夹) uri:默认文件 code:状态码 连起来就是:试图寻找文件(或文件夹)file1,如果找到则返回,如果没找到紧接着寻找file2,file3...,        若果都未找到,则返回默认文件uri(第二种code为返回状态码)
作用配置段:server location
关于vue配置解释:vue去除#号,除了前端作修改,服务器端也要作相应的修改,具体为-在location 里加上try_files $uri $uri/ /index.html
$uri:nginx 一个参数,其代表的是域名后到问号之间的这一部分,比如:www.xxxx.com/index.php?a=1&b=2,那么$uri = index.php
举例:http://www.xxxx.com/case/goods?type =1 & page =2; $uri 就是case/goods,这个时候系统就会去找$root/case/goods($root就是你nginx配置的root /xxx/xxx/),没有goods文件,继续找case/goods这个目录,也没找到,这时候直接返回index.html文件给浏览器,浏览器根据url再进行处理