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;
}
}