nginx在配置访问路径的时候 ,不能将alias 的路径指定到linux服务器的/tmp 路径下。
如果指定到/tmp 路径下:再访问这个文件的时候会提示:
[error] 5102#0: *27 open() "/tmp/download/2323232.xlsx" failed (2: No such file or directory), client: 222.249.170.85, server: _, request: "GET /download/70e7d0efff9b48e3a36c5bc6748b8520.xlsx HTTP/1.1", host: "baidu.com"
问题回放:
nginx 是这么配置的:
location /download { alias /tmp/download; expires 7d; }
这个问题正式因为 在访问 http://xxx.com/download/2323232.xlsx 时候 ,通过nginx访问服务器文件,然后就会提示404,但实际上文件是再服务器上存在的。
寻找问题:在https://stackoverflow.com/questions/43556672/open-failed-2-no-such-file-or-directory/51172926#51172926
中 说了 ROOT 的路径不能是临时路径,同样 alias的路径也不能是临时路径。如:/tmp/**
好像也有说 路径中包含 tmp 就会提示404(未验证)
遇到这个问题的 环境是 centos 7 nginx/1.12.2