Skip to content

Nginxindex:首页处理模块

HTTP 请求经过一系列的请求流程处理后,最终将读取数据并把数据内容返回给用户。当用户请求没有明确指定请求的文件名称时,Nginx 会根据设定返回默认数据,实现这一功能包含 ngx_http_index_module、ngx_http_random_index_module、ngx_http_autoindex_module 这 3 个模块。

常用的首页处理配置指令如下面表格中所示。

表:首页指令

<tbody>
	<tr>
		<th>名称</th>
		<th>首页指令</th>
	</tr>
	<tr>
		<td>指令 </td>
		<td>index</td>
	</tr>
	<tr>
		<td>作用域</td>
		<td>http、server、location</td>
	</tr>
	<tr>
		<td>默认值</td>
		<td>index index.html</td>
	</tr>
	<tr>
		<td>指令说明</td>
		<td>设置 HTTP 服务器的默认首页</td>
	</tr>
</tbody>

配置样例如下:

location / {

index index.$geo.html index.html;

} 指令值为多个文件时,会按照从左到右的顺序依次查找,找到对应文件后将结束查找。

表:随机首页指令

<tbody>
	<tr>
		<th>名称</th>
		<th>随机首页指令</th>
	</tr>
	<tr>
		<td>指令</td>
		<td>random_index</td>
	</tr>
	<tr>
		<td>作用域</td>
		<td>location</td>
	</tr>
	<tr>
		<td>默认值</td>
		<td>off</td>
	</tr>
	<tr>
		<td>指令值可选项</td>
		<td>on 或 off</td>
	</tr>
	<tr>
		<td>指令说明</td>
		<td>随机读取文件目录下的文件内容为首页内容</td>
	</tr>
</tbody>

配置样例如下:

root /opt/nginx-web/html;

location / {

random_index on;

} 该指令的执行优先级高于 index 指令,文件目录中的隐藏文件将被忽略。

表:自动首页指令

<tbody>
	<tr>
		<th>名称</th>
		<th>自动首页指令</th>
	</tr>
	<tr>
		<td>指令 </td>
		<td>autoindex</td>
	</tr>
	<tr>
		<td>作用域</td>
		<td>http、server、location</td>
	</tr>
	<tr>
		<td>默认值</td>
		<td>off</td>
	</tr>
	<tr>
		<td>指令值可选项</td>
		<td>on 或 off</td>
	</tr>
	<tr>
		<td>指令说明</td>
		<td>自动创建目录文件列表为目录首页</td>
	</tr>
</tbody>

表:自动首页格式指令

<tbody>
	<tr>
		<th>名称</th>
		<th>自动首页格式指令</th>
	</tr>
	<tr>
		<td>指令</td>
		<td>autoindex_format</td>
	</tr>
	<tr>
		<td>作用域</td>
		<td>http、server、location</td>
	</tr>
	<tr>
		<td>默认值</td>
		<td>html</td>
	</tr>
	<tr>
		<td>指令值可选项</td>
		<td>html 或 xml 或 json 或 jsonp</td>
	</tr>
	<tr>
		<td>指令说明</td>
		<td>设置 HTTP 服务器的自动首页文件格式</td>
	</tr>
</tbody>

表:自动首页文件大小指令

<tbody>
	<tr>
		<th>名称 </th>
		<th>自动首页文件大小指令</th>
	</tr>
	<tr>
		<td>指令</td>
		<td>autoindex_exact_size</td>
	</tr>
	<tr>
		<td>作用域</td>
		<td>http、server、location</td>
	</tr>
	<tr>
		<td>默认值</td>
		<td>on</td>
	</tr>
	<tr>
		<td>指令值可选项</td>
		<td>on 或 off</td>
	</tr>
	<tr>
		<td>指令说明</td>
		<td>设置 HTTP 服务器的自动首页显示文件大小。默认文件大小单位为 Byte,当指令值为 off 时,将根据文件大小自动换算为 KB 或者 MB 或者 GB 的单位大小</td>
	</tr>
</tbody>

表:自动首页时间指令

<tbody>
	<tr>
		<th>名称</th>
		<th>自动首页时间指令</th>
	</tr>
	<tr>
		<td>指令</td>
		<td>autoindex_localtime</td>
	</tr>
	<tr>
		<td>作用域</td>
		<td>http、server、location</td>
	</tr>
	<tr>
		<td>默认值</td>
		<td>off</td>
	</tr>
	<tr>
		<td>指令值可选项</td>
		<td>on 或 off</td>
	</tr>
	<tr>
		<td>指令说明</td>
		<td>按照服务器时间显示文件时间。默认显示的文件时间为 GMT 时间。当指令值为 on 时,显示的文件时间为服务器时间</td>
	</tr>
</tbody>

配置样例如下:

location / {

autoindex on;

autoindex_format html;

autoindex_exact_size off;

autoindex_localtime on;

}