location 语法
location 有”定位”的意思, 可根据Uri来进行不同的定位,location可以把网站的不同部分,定位到不同的处理方式上 。 nginx 与 php 的结合上,用的就是location 语法。
location 大类型可分为3种
- location = patt {} //精准匹配
- location patt{} //一般匹配
- location ~ patt{} //正则匹配
1. 精准匹配
精准是指具体的某个url
案例:
location =/index.html {
root /data/www/guopingzhang.top;
index index.html index.htm;
}
由于我这里之前有配置过负载均衡,在重载 nginx 配置前,访问主机默认会被转发到不同服务器上。这里附上 nignx 配置
nginx 负载均衡可参考:https://blog.csdn.net/zhang_referee/article/details/88542613
重载nginx :
nginx -s reload
在浏览器访问:
2 .一般匹配
nginx 配置 文件 ,默认 location 采用的就是一般匹配。
案例:
nginx 负载均衡参考:https://blog.csdn.net/zhang_referee/article/details/88542613
3. 正则匹配
案例:
nginx 与 php 结合 ,所有php 结尾的url 请求交给 php 去处理
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
所有请求.jpg、.png、.gif、.jpeg为后缀 (不区分大小写)的文件定位到/data/www/OneGame/public 目录下,并缓存7天。
location ~* (jpeg|jpg|png|gif){
root /data/www/OneGame/public ;
expires 7d;
}
nginx 缓存可参考:https://blog.csdn.net/zhang_referee/article/details/88532172 。
如果有精准匹配,匹配成功立即返回结果并结束解析过程。
如果有正则匹配,则一旦匹配成功1个,立即返回结果,并结束解析过程。
如果是普通匹配,则优先匹配最精确的( 即最长的被匹配 ) 。