透過 sshfs 和 fstab 在 nginx 伺服器上安裝的資源會出現 404 錯誤 - 刷新時消失

透過 sshfs 和 fstab 在 nginx 伺服器上安裝的資源會出現 404 錯誤 - 刷新時消失

以下是情況的概要: 在此輸入影像描述

我正在運行一台nginx伺服器(機器 2),它為我們的學生提供作業。學生作業本身位於另一台機器(機器 1)上:我們的gitolite伺服器。

為了最大限度地減少git clone資料傳輸(並且為了方便),我透過sshfs相應的條目將學生儲存庫(位於機器 1 上)作為目錄安裝在 nginx 伺服器(機器 2)上fstab

fstab這是機器 2 上的條目之一:

[email protected]:/path/to/student/work/on/machine1 /path/to/mount/point/on/machine2
   fuse.sshfs x-systemd.automount,_netdev,user,idmap=user,follow_symlinks,
   identityfile=/path/to/rsa-key/of/ssh-user/key_rsa,allow_other,default_permissions,
   reconnect 0 0

(注意:在 fstab 檔案中,這是排版為一行,但為了方便閱讀,我在上面添加了換行符)

這種設置原則上是有效的,這意味著學生的作品可以透過 nginx 提供的網站存取。

但是當使用者嘗試查看學生作業時。大多數時候使用者會收到來自 nginx 的 404 錯誤。只需重新載入頁面即可修復此錯誤。但大多數用戶(顯然)不會這樣做(他們只是假設網址有錯誤)。

我看到兩種可能的解決方案:

  1. (首選:)透過對 fstab 條目進行一些修改來修復 404,例如修復 404 錯誤的原因
  2. (如果 1. 失敗:)設定 nginx,以便在出現 404 錯誤時自動重新載入(重新整理)頁面。

答案1

我認為該程式nginx正在以不同的用戶身份運行。預設情況下,sshfs安裝僅對安裝它們的使用者可見。

因此(預設)nginx看不到這些文件。

sshfs/有選項fusesshfsfuse檔案系統)。讓它們更加明顯。 (我不記得了,但說明書上有)。

相關內容