location语法:表示uri方式定位
基础语法有三种:
location正则表达式:
Nginx语法:
if(条件为:=~ ~*)
return:返回指定页面
break:退出,结束语句
rewrite:重写地址,转发到其他请求地址,其后必须跟break,否则转发失败(1、可隐藏实际访问地址,虚拟地址在nginx下转发至实际地址,2、请求分流[实例在下面:根据正则分流请求])
-f:是否为文件
-d:是否为目录
-e:是否存在
举例:
location ~ test {
# 重写语法:if return (条件 = ~ ~*)
#当访问地址IP为 192.168.1.40时,返回401页面
#场景:小的限制(黑名单、白名单、使用脚本禁用用户等)
if ($remote_addr = 192.168.1.200) {
return 401;
}
#当访问的浏览器是firefox时(~* firefox:忽略firefox大小写),将请求转发至firefox.html页面
if ($http_user_agent ~* firefox) {
rewrite ^.*$ /firefox.html;
break;
}
root bhz.com;
index index.html;
}
location /goods {
#goods-(\d{1,5})\.html:URLgoods开头,(\d{1,5})是一个最小1位最大5位的数字(0-99999)
#例如:goods-12345.html,超出5位数字报页面404
#上面的地址重写(转发)到指定地址/goods-ctrl.html(可以指向一个动态URL或服务)
rewrite "goods-(\d{1,5})\.html" /goods-ctrl.html;
root bhz.com;
index index.html;
}
动静分离:
动态的请求访问web服务器(tomcat等)
静态的请求访问Nginx服务器(在root下放一堆静态文件)
原文:https://www.cnblogs.com/chai-blogs/p/13062635.html