指令介绍

Syntax: try_files file ... uri;
try_files file ... =code;
Default: —
Context: server, location

  依次试图访问多个URI对应得文件(由root或者alias指令指定),当文件存在时直接返回内容,如果所有文件不存在,则按最后一个URL结果或者code返回

server {
server_name try_files.com;
root html/;
default_type text/plain;
location /first {
try_files /system/maintenance.html #找磁盘文件;找不到磁盘文件是
$uri $uri/index.html $uri.html#找$URI也就是去找html/first有没有这个文件;匹配不到是;找first/下面有没index.html;
@lasturi; #最后匹配这个
}
location @lasturi {
return 200 'lasturi!\n';
}
location /second {
try_files $uri $uri/index.html $uri.html =404;
}
}

  测试

[root@python vhast]# curl try_files.com/first
lasturi!

  mirrors 模块流量拷贝

功能:处理请求时生成子请求对子请求的返回结果不做处理

指令

Syntax: mirror uri | off;  #uri表示将请求复制到另一个地址
Default: mirror off;
Context: http, server, location
Syntax: mirror_request_body on | off; #mo
Default: mirror_request_body on;
Context: http, server, location

  实现

[root@python vhast]# cat mirrors.conf
server {
server_name mirrors.com;
error_log logs/mirrors_error.log debug;
location /{
mirror /mirror;
mirror_request_body off;
}
location = /mirror {
internal; #指定为内部请求
proxy_pass http://127.0.0.1:10020$request_uri;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}
} [root@python vhast]# cat test-2.conf
server {
listen 10020;
location / {
return 200 "mirror response!";
}
}

  测试

[root@python vhast]# echo "mirror" > ../../html/mirror.txt
[root@python vhast]# curl mirrors.com/mirror.txt
mirror
[root@python vhast]# tail ../../logs/access.log
127.0.0.1 - - [10/Jul/2019:11:56:22 +0800] "GET / HTTP/1.0" 200 16 "-" "curl/7.29.0"
192.168.183.4 - - [10/Jul/2019:11:56:22 +0800] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0"
127.0.0.1 - - [10/Jul/2019:11:59:07 +0800] "GET /mirror.txt HTTP/1.0" 200 16 "-" "curl/7.29.0"
192.168.183.4 - - [10/Jul/2019:11:59:07 +0800] "GET /mirror.txt HTTP/1.1" 200 7 "-" "curl/7.29.0"
127.0.0.1 - - [10/Jul/2019:11:59:08 +0800] "GET /mirror.txt HTTP/1.0" 200 16 "-" "curl/7.29.0"
192.168.183.4 - - [10/Jul/2019:11:59:08 +0800] "GET /mirror.txt HTTP/1.1" 200 7 "-" "curl/7.29.0"
127.0.0.1 - - [10/Jul/2019:11:59:09 +0800] "GET /mirror.txt HTTP/1.0" 200 16 "-" "curl/7.29.0"
192.168.183.4 - - [10/Jul/2019:11:59:09 +0800] "GET /mirror.txt HTTP/1.1" 200 7 "-" "curl/7.29.0"
127.0.0.1 - - [10/Jul/2019:12:30:55 +0800] "GET /mirror.txt HTTP/1.0" 200 16 "-" "curl/7.29.0"
192.168.183.4 - - [10/Jul/2019:12:30:55 +0800] "GET /mirror.txt HTTP/1.1" 200 7 "-" "curl/7.29.0"

  

nginx 的precontent阶段的ngx_http_try_files_module模块与mirrors模块介绍的更多相关文章

  1. nginx 的请求处理阶段

    nginx处理的11个阶段 nginx处理用户请求的流程 接收用户请求头部之后 1 .匹配对应得location 2.是否进行限速 3.验证用户是否有权限访问该资源:和判断是否是盗链的请求 4.生成用 ...

  2. Nginx服务编译安装、日志功能、状态模块及访问认证模式实操

    系统环境 [root@web ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@web ~]# uname -a Linux d ...

  3. NGINX 加载动态模块(NGINX 1.9.11开始增加加载动态模块支持)

    NGINX 1.9.11开始增加加载动态模块支持,从此不再需要替换nginx文件即可增加第三方扩展.目前官方只有几个模块支持动态加载,第三方模块需要升级支持才可编译成模块. tinywan@tinyw ...

  4. nginx限制请求之二:(ngx_http_limit_req_module)模块

    相关文章: <高可用服务设计之二:Rate limiting 限流与降级> <nginx限制请求之一:(ngx_http_limit_conn_module)模块> <n ...

  5. 高性能Web服务器Nginx的配置与部署研究(13)应用模块之Memcached模块+Proxy_Cache双层缓存模式

    通过<高性能Web服务器Nginx的配置与部署研究——(11)应用模块之Memcached模块的两大应用场景>一文,我们知道Nginx从Memcached读取数据的方式,如果命中,那么效率 ...

  6. [转帖]利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞

    利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞 2018年08月02日 10:06:03 Minza 阅读数 483 https://blog.csdn.net/ha ...

  7. 循序渐进nginx(三):日志管理、http限流、https配置,http_rewrite模块,第三方模块安装,结语

    目录 日志管理 access_log error_log 日志文件切割 自定义错误页 http访问限流 限制请求数 语法 使用 限制连接数 语法 测试 补充: https配置 使用 生成证书 配置ng ...

  8. ES6 模块与 CommonJS 模块的差异

    ES6 模块与 CommonJS 模块完全不同.它们有两个重大差异 CommonJS 输出是值的拷贝,即原来模块中的值改变不会影响已经加载的该值,ES6静态分析,动态引用,输出的是值的引用,值改变,引 ...

  9. Maven最佳实践 划分模块 配置多模块项目 pom modules

    所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml.它们之间通过继承和聚合(也称作多模块,multi-module)相互关联.那么,为什么要这么做呢?我们明明在开发一 ...

随机推荐

  1. EVE-NG镜像模板资源占用统计

    转:http://www.emulatedlab.com/forum.php?mod=viewthread&tid=432&extra=page%3D1 EVE  Image fold ...

  2. 染色板QPlette

    QPalette::Window 背景颜色 QPalette::WindowText 文本颜色 QPalette::Background 同QPalette::Window QPalette::For ...

  3. 测试工具 - IDEA - IDEA Code Coverage

    概述 使用 idea 自带的 code coverage 工具 背景 了解 白盒测试用例设计 和 测试覆盖率 之后, 大概就需要 实践 了 实践的话, 还是需要 工具 来检验效果 工具选取 选项 Ja ...

  4. Codeforces Round #604 (Div. 2)D(构造)

    构造,枚举起点,如果一个序列成立,那么将它reverse依然成立,所以两个方向(从小到大或从大到小)没有区别,选定一个方向进行探测,直到探测不到以后回头,只要所给数据能成立,那么能探测进去就能探测出来 ...

  5. CF1272C

    Recently, Norge found a string s=s1s2…sns=s1s2…sn consisting of nn lowercase Latin letters. As an ex ...

  6. Go_bufio包

    bufio 是通过缓冲来提高效率. io操作本身的效率并不低,低的是频繁的访问本地磁盘的文件.所以bufio就提供了缓冲区(分配一块内存),读和写都先在缓冲区中,最后再读写文件,来降低访问本地磁盘的次 ...

  7. HDU 6631 line symmetric 计算几何

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6631 题意:共\(T\)组数据,每组数据给出\(n\)个点的坐标,这\(n\)个点按顺序给出,相邻的点 ...

  8. 你了解真正的 restful API 吗?

    本文原创地址,博客:https://jsbintask.cn/2019/03/20/api/restful-api-best-practices/(食用效果最佳),转载请注明出处! 前言 在以前,一个 ...

  9. VMware安装ACS5.8

    1.所需组件: VMware ACS5.8 iso 2.安装要求: 2 Core Processor 4 GB RAM 60 GB Hard drive 这些要求算是比较低的要求,不能比这个更low了 ...

  10. JS知识点查漏补缺

    知识点1: 判断语句中遇到NaN即为 False 只需要注意遇到False即为False即可 使用join(),toString()皆可以将数组转化为字符串 二者的相同点在于都可以转化数组为字符串 二 ...