- 什么是location,location都做些什么工作
上文有提到,nginx内核完成的工作就是查找配置文件,将客户请求映射到一个location block,然后再执行location中的相应指令,所以说,location的作用就是用于匹配客户请求,并做出相应动作。
location如何匹配用户请求呢,先对URL进行剖析你就会知道,URL的格式由下列三部分组成:
第一部分是协议(或称为服务方式);
第二部分是存有该资源的主机IP地址(有时也包括端口号);
第三部分是主机资源的具体地址。,如目录和文件名等;
当一个请求到达服务器后,服务器接受到这个请求时,前两部分的匹配工作就已经完成,现在要做的就是在服务器上找到资源,location就是匹配的URL的第三部分内容。 - 匹配模式
location = /uri =开头表示精确匹配,只有完全匹配上才能生效。
location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前。
location ~ pattern ~开头表示区分大小写的正则匹配。
location ~ pattern ~开头表示不区分大小写的正则匹配。
location /uri 不带任何修饰符,也表示前缀匹配,但是在正则匹配之后。
location / 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default。 - 匹配顺序
精确匹配>正则匹配>普通字符匹配 普通匹配看字符串长短,正则匹配看顺序