在 Nginx 的配置中,Location 配置至关重要。首先,让我们看一个基础的配置示例:例如,当访问 yayujs.com 的 80 端口时,会返回 /home/www/ts/index.html,这是 Location 配置的基本语法:关键在于方括号内的 [ = | ~ | ~* | ^~ ],它们分别代表不同的匹配方式。如果不使用这些特殊语法,仅使用uri,"/" 代表通用匹配。关于匹配顺序,Nginx 会首先按前缀字符串(prefix locations)的长度进行匹配,最长匹配的会被选中,然后检查正则表达式。正则表达式匹配顺序取决于它们在配置文件中的顺序,一旦找到匹配,立即停止搜索。优先级方面,"=" 修饰符最高,其定义了 URI 和 location 的精确匹配。遇到"^~"时,正则表达式不会被考虑。对于频繁的"/"请求,使用 "location = /" 可提升效率。root 和 alias 的区别在于,root 是直接将 root 和 location 相加,如 "/i/top.gif" 会返回 "/data/w3/i/top.gif";而 alias 是用 alias 替换 location,如 "/i/top.gif" 返回 "/data/w3/images/top.gif",注意路径的区别。当同时在 server 和 location 中使用 root,遵循就近原则,location 具有更高的优先级,只有当 location 配置无法匹配时,才会使用 server 的 root。