Nginx基础06:location语法

摘要:
location语法:表示uri方式定位基础语法有三种:location=pattern{}  精准匹配locationpattern{}  一般匹配location~pattern{}正则匹配location正则表达式:"~xxx":匹配访问的请求的URL中必须包含"xxx""~*xXx":匹配忽略后面"xXx"是否大小写/xxx:匹配访问的请求的URL必须是"xxx"开头^xxx:匹配访问的请

location语法表示uri方式定位

基础语法有三种:

  • location = pattern{}  精准匹配
  • location pattern{}  一般匹配
  • location ~ pattern{} 正则匹配

location正则表达式:

  • "~ xxx":匹配访问的请求的URL中必须包含"xxx"
  • "~* xXx":匹配忽略后面"xXx"是否大小写
  • /xxx:匹配访问的请求的URL必须是"xxx"开头
  • ^xxx:匹配访问的请求的URL前缀是"xxx"
  • abc$:匹配访问的请求的URL是以abc结尾
  • .*:任何请求

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;
}

动静分离:

  1. 一个service(虚拟主机服务配置)可以配置多个location
  2. 静态的html、js、image、css等放入指定的静态目录下,当客户端访问nginx能匹配到当前正则表达式的location时,可对文件进行缓存,对网站优化很有用
  3. 当客户端访问动态的请求时,可通过特定的location进行反向代理来访问指定处理请求的服务器(tomcat等)

动态的请求访问web服务器(tomcat等)

静态的请求访问Nginx服务器(在root下放一堆静态文件)

免责声明:文章转载自《Nginx基础06:location语法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring中NESTED和REQUIRED_NEW传播行为的区别dva的effect那么难用,自己造一个轮子吧下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux socket编程client获取使用的ip和port

今天为了测试机器绑定多ip时socket client使用的ip和port, 因此查询资料看了下如何获取client的ip和port(系统自选而不是bind绑定) 主要是对连接的描述符通过getsockname 函数获取client的地址信息,函数说明如下 #include <sys/socket.h> int getsockname(int...

Finder 快捷键

记录几个常用的 Finder 快捷键: 复制 Finder 里选中的路径:option+cmd+c 地址栏跳到指定路径:shift+cmd+g 增加标签:cmd+t 显示/隐藏 标签栏:shift+cmd+t 显示/隐藏 地址栏:option+cmd+p...

阿里云的推流、拉流与播流

原文: https://help.aliyun.com/document_detail/199340.html?spm=5176.13499635.help.dexternal.119f2699sMrZOJ 视频直播的基础服务是直播流的接入和分发服务。您可以使用推流地址通过推流工具将视频流推送至阿里云平台进行视频的内容处理及分发,观众可以通过播放地址和播放...

自动化监控Zabbix之主机自动发现

创建思路 首先说下自动发现强大的功能,它到底可以帮助我们完成什么工作: 快速发现并添加主机 简单的管理 随着环境的改变而快速搭建监控系统 自动发现基于网络发现功能,而网络发现又基于以下信息: IP地址段 基于服务的FTP、SSH、Web、POP3、IMAP、TCP等 从Zabbix-agent端接收的信息 从SNMP agent端接受的信息 好了...

jQuery在线引用地址(全)

1.官网jquery压缩版引用地址:  3.1.1版本:   <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>    3.0.0版本:   <script src="https://code.jquery.com/jquery-3.0.0.m...

排序的概念与方法

排序的基本概念 1.排序   排序(Sorting)是按关键字的非递减或非递增顺序对一组记录重新排列的操作。确切描述如下:   假设含n个记录的序列为{R1,R2,……,Rn},其相应的关键字序列为{K1,K2,……Kn},需确定1,2,……,n的一种排列p1,p2,……pn,使其相应的关键字满足如下的非递减(或非递增)关系。K p1≤K p2≤……≤K...