zoukankan      html  css  js  c++  java
  • Web架构之Nginx try_files

    try_files

    Nginx的try_files按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数,只有最后一个参数可以引起一个内部重定向。之前的参数只设置内部的URI指向,最后一个参数是回退的URI且必须存在,否则将会出现内部500错误

    try_files格式:

    location / {
            try_files $uri $uri/ /index.php;
        }
    
    #1.检查用户请求的uri内容是否存在当前本地磁盘,存在则解析
    #2.将请求加/,类似于重定向处理
    #3.前两者匹配不到,最后交给index.php处理
    

    简单实现

    1.环境准备

    $ echo "Try-Page" > /data/www/index.html
    

    2.配置nginx的try_file

    $ cat /etc/nginx/conf.d/try_files.conf
    server {
        listen 80;
        server_name www.hhjy.org;
        root /data/www/;
        index index.html;
        location / {
            try_files $uri $uri/ /index.html;
        }
    }
    

    3.测试

    $ curl www.hhjy.com/cache/xx1.html
    Try-Page // 返回的是index.html的内容
    
    // 访问流程
    curl www.hhjy.com/cache/xx1.html
    
    首先nginx会在该虚拟主机root关键字所定义的路径/data/www下查找cache/xxindex.ht,
    如果该文件不存在,则会返回/data/www/index.html
    

    示例

    示例一:跳转到指定后端

    server {
      listen 80; 
      server_name 10.4.7.7; 
      root /data/code; 
      index index.html; 
    
      location / {
        try_files /a.html /b.html @java_page;  # 检查文件a.html、b.html,如果存在则正常显示,不存在就去查找@java_page的值。
      } 
      location @java_page {
        proxy_pass http://172.16.1.7:8080;  # 转发到 172.16.1.7:8080
      }
      }
    

    实例二:跳转到指定文件

    server {
      listen 80;
      server_name 10.4.7.7;
      root /data/code;
      index index.html;
     
      location /abc {
        try_files /a.html /b.html /c.html;
     }
    
  • 相关阅读:
    jmeter常用功能补充介绍
    服务器性能监控
    shell三剑客介绍及实例
    shell基础
    jmeter基本使用及基于jmeter的数据验证
    使用Loadrunner进行性能测试
    react-loadable 源码解析
    DOMException [SecurityError]: localStorage is not available for opaque origins
    mac 安装node并且安装jsdom
    python操作关系型数据库mysql pgsql返回字典类型的数据
  • 原文地址:https://www.cnblogs.com/jasonminghao/p/12490125.html
Copyright © 2011-2022 走看看