请求“/logo.gif”, 首先与前缀位置“/”匹配,然后与正则表达式“\.(gif | jpg | png)$”匹配,因此由后一个位置处理。使用指令“root /data/www”将请求映射到文件/data/www/logo.gif,然后将文件发送给客户端。
请求“/index.php”, 也首先与前缀位置“/”匹配,然后与正则表达式“\.(php)$”匹配。因此,它由后一个位置处理,并将请求传递到在localhost:9000上侦听的FastCGI服务器。 fastcgi_param指令将FastCGI参数SCRIPT_FILENAME设置为“ /data/www/index.php”,然后FastCGI服务器执行该文件。变量$document_root等于root指令的值,变量$fastcgi_script_name等于请求URI,即“/index.php”。
请求“/about.html”仅与前缀位置“/”匹配,因此在该位置进行处理。使用指令“root /data/www”将请求映射到文件/data/www/about.html,然后将文件发送给客户端。
处理请求“/”更为复杂。它仅与前缀位置“/”匹配,因此由该位置处理。然后,index指令根据其参数和“root /data/www”指令对索引文件的存在进行测试。如果文件/data/www/index.html不存在,文件/data/www/index.php存在,则该指令将内部重定向到“/index.php”,并且nginx再次搜索位置如果请求是由客户端发送的。如前所述,重定向的请求最终将由FastCGI服务器处理。