前言

前两天在搞项目的时候,遇到了一个有意思的nginx的配置问题。准确来说,也并非是bug。

环境

window系统,nginx1.15。
没有测试linux环境,有兴趣可以测试。

配置文件原内容

2023-12-16T01:11:54.png
这是windows系统常见的配置,初看是没有问题的。nginx -t也没有问题。
但是,启动nginx,访问项目的时候就会报错。

配置文件正常内容

2023-12-16T01:27:36.png

仔细观察,root指令路径变成了双斜杠。nginx在解析路径的时候应该是按字符串解析,所以\t会被当成制表符,解析后路径就变成"C:\Program Files est"。因此找不到项目跟根目录。
还记得之前学习,Windows系统路径最好使用使用双斜杠,因为windows系统路径分隔符默认是\,非常容易被误认为是转义字符,所以使用双\\来分割路径。

windows系统在表示路径是最好使用 \\ 来分割路径, \ 容易被当成转义字符解析。