Nginx 配置 try_files指令用法

2020-02-14  本文已影响0人  亻火子

try_files指令是按顺序检测文件是否存在,并且返回第一个找到文件的内容,如果第一个找不到就会自动找第二个,依次查找。其实现的是内部跳转。以下举例说明:

  #PHP负载均衡
  upstream php-upstream {
    server 192.168.0.10:9000;
    server 192.168.0.11:9000;
  }

  server {
    listen 80;
    listen [::]:80;

    server_name wanphp.com;
    root /var/www/wanphp;
    index index.html index.php;

    #$uri 变量指的是请求的文件和路径,不包括“?”或者“#”之后的东西,$request_uri则是请求的整个字符串,包含了后面的query_string的。
    #$args 变量等于请求行中(GET请求)的参数,例如:path=home&id=101;
    #$is_args 如果有$args参数,这个变量等于"?",否则等于"",空值。
    location / {
         #请求不是文件或路径(路径下无index指定的默认文件)则访问跟目录下的/index.php
         #try_files $uri $uri/ /index.php$is_args$args; 
         try_files $uri $uri/ /index.php?path=$uri&$args;
    }

    #后缀为.php的请求
    location ~ \.php$ {
        try_files $uri /index.php =404; #如果PHP文件不存在则访问跟目录下的/index.php,还是不存在就返回404。
        fastcgi_pass php-upstream;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fixes timeouts
        fastcgi_read_timeout 600;
        include fastcgi_params;
    }
  }
 
上一篇 下一篇

猜你喜欢

热点阅读