Über SSHFS und Fstab auf einem Nginx-Server gemountete Ressourcen führen zu 404-Fehlern - beim Aktualisieren verschwunden

Über SSHFS und Fstab auf einem Nginx-Server gemountete Ressourcen führen zu 404-Fehlern - beim Aktualisieren verschwunden

Hier ist eine Skizze der Situation: Bildbeschreibung hier eingeben

Ich betreibe einen nginxServer (Maschine 2), der die Arbeiten unserer Studierenden bereitstellt. Die Arbeiten der Studierenden selbst liegen auf einer anderen Maschine (Maschine 1): unserem gitoliteServer.

Um die Anzahl git cloneder 's und die Datenübertragung zu minimieren (und der Einfachheit halber), mounte ich die Studenten-Repositorys (auf Maschine 1) als Verzeichnisse auf dem Nginx-Server (Maschine 2) über sshfsund entsprechende fstabEinträge.

Dies ist einer der fstabEinträge auf Maschine 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

(Hinweis: In der fstab-Datei ist dies als eine einzelne Zeile gesetzt, aber zur besseren Lesbarkeit habe ich oben Zeilenumbrüche hinzugefügt.)

Dieser Aufbau funktioniert grundsätzlich, das heißt die Arbeiten der Studierenden sind über die von nginx bereitgestellte Webseite erreichbar.

Wenn ein Benutzer jedoch versucht, sich die Arbeit des Studenten anzusehen, wird ihm in den meisten Fällen ein 404-Fehler von nginx angezeigt. Dieser Fehler kann durch einfaches Neuladen der Seite behoben werden. Die meisten Benutzer werden dies jedoch (offensichtlich) nicht tun (sie gehen einfach davon aus, dass die URL fehlerhaft ist).

Ich sehe zwei mögliche Lösungen:

  1. (bevorzugt:) Beheben des 404-Fehlers durch eine Änderung des fstab-Eintrags, z. B. durch Beheben der Ursache des 404-Fehlers
  2. (wenn 1. fehlschlägt:) Konfigurieren von nginx, um die Seite automatisch neu zu laden (aktualisieren), wenn ein 404-Fehler auftritt.

Antwort1

Ich würde denken, dass es nginxals anderer Benutzer ausgeführt wird. Und standardmäßig sshfssind Mounts nur für den Benutzer sichtbar, der sie mountet.

nginxDaher können die Dateien (standardmäßig) nicht angezeigt werden.

Es gibt Optionen für sshfs/ fuse( sshfsist ein fuseDateisystem), um sie besser sichtbar zu machen. (Ich kann mich nicht erinnern, aber es steht im Handbuch).

verwandte Informationen