作用:
    try_files是nginx中http_core核心模块所带的指令,主要是能替代一些rewrite的指令,提高解析效率,作用域在server / location中,将按顺序检查文件是否存在,返回第一个找到的文件,结尾的斜线表示为文件夹 -$uri/,如果所有的文件都找不到,会进行一个内部重定向到最后一个参数

    语法:
    try_files file … uri 或 try_files file … = code

    举例说明:
    image.png
    location /images/ {
    root /opt/html/;
    try_files $uri $uri/ /images/default.gif;
    }


    比如 请求 127.0.0.1/images/test.gif 会依次查找
    1.文件/opt/html/images/test.gif
    2.文件夹 /opt/html/images/test.gif/下的index文件
    3. 请求127.0.0.1/images/default.gif

    4.其他注意事项
    1.try-files 如果不写上 $uri/,当直接访问一个目录路径时,并不会去匹配目录下的索引页 即 访问127.0.0.1/images/ 不会去访问 127.0.0.1/images/index.html

    操作演示:
    image.png
    首先我们cd到我们之前安装好的tomcat-8080服务下,cd到指定目录“/usr/tomcat/apache-tomcat-9.0.58-8080/webapps/ROOT”

    image.png
    这是用来存放web各种资源的地方

    image.png
    “cp /usr/share/nginx/html/index.html /usr/tomcat/apache-tomcat-9.0.58-8080/webapps/ROOT/”用这个命令把默认的nginx网页复制到指定位置,为了后面能够区分出实验效果

    image.png
    修改页面内容即可

    image.png
    随后重命名即可

    image.png
    随后编写配置文件,大致意思就是我们去请求tryfiles文件,他会一个个按照路径去找,如果都没有,就会将请求转给下一个location“@try”

    #Try_files配置语句:

    location /tryfiles{
    root opt/app/cache/;
    try_files $uri @try;
    }

    location @try {
    proxy_pass http://127.0.0.1:8080;
    }

    image.png
    检查语法并重启服务

    image.png
    这不是报错,相反,效果已经证明了,首先我在“/opt/cache下没有放任何东西,其次try file功能已经实现了,因为它将请求转发到了我们的Tomcat-8080服务上”能证明即可

    相关参考文档:https://www.jianshu.com/p/a15b7ee75847 & https://www.cnblogs.com/fishbook/p/9679516.html