美文网首页PHP经验分享微服务架构和实践Nginx高端成长之路
【充电】《Nginx核心知识100讲》precontent阶段:

【充电】《Nginx核心知识100讲》precontent阶段:

作者: 言十年 | 来源:发表于2019-01-08 23:52 被阅读10次

极客专栏《Nginx核心知识100讲》61~62小节,笔记
注意:这个是看专栏视频,敲的哈。这个专栏让我收货蛮大的。

61 | precontent阶段:按序访问资源的try_files模块

这个模块只提供一个try_files指令,这个指令对我们使用反向代理,非常有帮助。

try_files 指令

image.png

这个try_files 模块是默认编译到nginx模块。try_files 两种用法。

image.png

/first 里面配置try_files依次匹配。/second里面如果匹配不到就报404。
我们经常在搭wordpress的时候,会用到try_files。try_ifles对反向代理场景非常有用。我们可以尝试在nginx上获取磁盘内容,如果没有整个文件,我们再反向代理到上游服务。

62 | 实时拷贝流量:precontent阶段的mirror模块

镜像模块可以帮我们创造一份镜像流量,比如生产环境中,我们处理一些请求,这些请求可能我们需要同步的copy一份到我们测试环境中或开发环境中。做处理。

image.png

每次请求到了nginx之后我们可以生成一个子请求,通过反向代理去访问我们的其他环境,子请求的返回值不做处理。因为我们只做镜像。

只有两个指令 mirror 跟mirror_request_body

1.mirror,把同步复制的请求,访问到另一个url,通常这个url会指向一个反向代理。

  1. mirror_request_body 是否把请求中的body转发到上游服务中。

一个例子

先创建一个上游服务。处理镜像请求。

image.png

处理用户请求的服务

image.png

留言问题

1.陶老师您好,mirror模块能否在拷贝前做规则匹配,如判定http头标识再执行拷贝

 作者回复
可以,你可以参考我提出的11个阶段的流程:if是在rewrite阶段,而mirror是在precontent阶段。

2.tcpcopy 也可以做到这个效果 mirror跟tcpcopy区别在哪里

 作者回复
区别很大,mirror基于nginx,所以分享nginx的所有功能,也就是这门课介绍的所有模块、指令你都可以配合到mirror里用。tcpcopy是四层的,没有那么多功能。

相关文章

网友评论

    本文标题:【充电】《Nginx核心知识100讲》precontent阶段:

    本文链接:https://www.haomeiwen.com/subject/kpvirqtx.html