带正则表达式的 location

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

在 location 上面,可以使用正则表达式来设置匹配的模式 ... 比如我想单独设置一下处理对图像资源的请求 .. 添加一个 location .. 在它的匹配这里用一个正则表示式,\.(gif|jpg|png)$ .. 它匹配的的地址就是用 .gif 或者 .jpg ,或者 .png 结尾的 ...

在它的前面,我们可以再用一个 modifier .. 用一个 ~* ... 它的意思匹配的表达式不区分大小写 ... 在这个 location 区块里面,用一个 expires 指令 ... 它可以设置资源过期的时间 ... 设置成 30d ... 表示 30 天 ..

也就是现在如果有人请求得到这个服务器上的图像资源,这些资源被标记的过期时间是 30 天以后 .. 也就是用户在强制刷新浏览器以后,这些图像资源不会被重新的下载 .. 直到 30 天以后 ...

我们可以在服务器上添加一张图片 ... 复制一下这个图像的地址 ... 新建一个目录 ... 位置是 /mnt/app/hello/img

mkdir -p /mnt/app/hello/img

再使用 curl 把图像文件下载到 /mnt/app/hello/img 的下面,名字是 logo.png ... 复制的地址粘贴过来 .. 再执行一下 ...

然后重新加载一下 nginx ...

完成以后,打开浏览器 .. 访问一下 hello.dev/img/logo.png ... 打开开发者工具的 Network 选项卡 .. 刷新 .. 选中这个 logo.png .. 看一下它的 Response Headers .. 这里会要出现一个 Expires .. 它的值就是这个图像过期的时间 .. 下面的 date 是下载这个图像的时间,它跟 Expires 之间正好是一个月 ...

说明客户在请求这个图像资源的时候,用的是刚才我们添加的这个 location 处理的 ..

NGINX 决定了用哪个服务器处理请求以后,会看一下服务器里的 location 区块 .. 它会使用匹配的最具体的那个 location .. 然后再继续查看使用了正则表达式的 location ,看一下是不是匹配 ... 如果匹配就用这个 location ,NGINX 会停止继续检查其它的 location ...

带正则表达式的 location《 NGINX:Web 服务器 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点