作用:
try_files是nginx中http_core核心模块所带的指令,主要是能替代一些rewrite的指令,提高解析效率,作用域在server / location中,将按顺序检查文件是否存在,返回第一个找到的文件,结尾的斜线表示为文件夹 -$uri/,如果所有的文件都找不到,会进行一个内部重定向到最后一个参数
语法:
try_files file … uri 或 try_files file … = code
举例说明:
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
操作演示:
首先我们cd到我们之前安装好的tomcat-8080服务下,cd到指定目录“/usr/tomcat/apache-tomcat-9.0.58-8080/webapps/ROOT”
这是用来存放web各种资源的地方
“cp /usr/share/nginx/html/index.html /usr/tomcat/apache-tomcat-9.0.58-8080/webapps/ROOT/”用这个命令把默认的nginx网页复制到指定位置,为了后面能够区分出实验效果
修改页面内容即可
随后重命名即可
随后编写配置文件,大致意思就是我们去请求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;
}
检查语法并重启服务
这不是报错,相反,效果已经证明了,首先我在“/opt/cache下没有放任何东西,其次try file功能已经实现了,因为它将请求转发到了我们的Tomcat-8080服务上”能证明即可
相关参考文档:https://www.jianshu.com/p/a15b7ee75847 & https://www.cnblogs.com/fishbook/p/9679516.html