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
中Terrence 說了 ROOT 的路徑不能是臨時路徑,同樣 alias的路徑也不能是臨時路徑。如:/tmp/**
好像也有說 路徑中包含 tmp 就會提示404(未驗證)
遇到這個問題的 環境是 centos 7 nginx/1.12.2