index & root
index index$geo html index0.html index.html;
切记, index指令并不是查到文件之后,就直接拿来用了。它的实际工作方式是:
如果文件存在,则 使用文件作为路径,发起内部重定向。直观上看上去就像再一次从客户端发起请求,Nginx再一次搜索 location一样。
既然是 内部重定向,域名+端口不发生变化,所以只会在同一个 server下搜索。
同样,如果 内部重定向发生在 proxy_pass反向代理后,那么重定向只会发生在代理配置中的同一个 server。
该指令后面可以跟多个文件,用空格隔开;
如果包括多个文件,Nginx会根据文件的枚举顺序来检查,直到查找的文件存在;
文件可以是相对路径也可以是绝对路径,绝对路径需要放在最后;
文件可以使用变量 $来命名;
index index$geo html index0.html index.html;
该指令拥有默认值, index index.html ,即,如果没有给出index,默认初始页为index.html
nginx默认是不允许列出整个目录的。如需此功能,
打开nginx.conf文件,在location server 或 http段中加入
autoindex on;
另外两个参数最好也加上去:
autoindex_exact_size off;
默认为on,显示出文件的确切大小,单位是bytes。
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime on;
默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间
location /images {
root /var/www/nginx-default/ibugaocn;
autoindex on;
}
location /img/ {
alias /var/www/image/;
}
#若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件
location /img/ {
root /var/www/image;
}
#若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件。]
另外对于index,含义如下
location / {
root /var/www/;
index index.htm index.html;
}
这样,当用户请求 / 地址时,Nginx 就会自动在 root 配置指令指定的文件系统目录下依次寻找 index.htm 和index.html 这两个文件。如果 index.htm 文件存在,则直接发起“内部跳转”到 /index.htm 这个新的地址;而如果 index.htm 文件不存在,则继续检查 index.html 是否存在。如果存在,同样发起“内部跳转”到/index.html;如果 index.html 文件仍然不存在,则放弃处理权给 content 阶段的下一个模块
try_file
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