私はnginx
学生に課題を提供するサーバー(コンピュータ2)を運営しています。学生作品自体は別のコンピュータ(マシン1)、つまり私たちのサーバーgitolite
にあります。
データ転送を最小限に抑え、便宜上、git clone
学生sshfs
リポジトリ(マシン1にあります)をそのエントリを使用してnginxサーバー(マシン2)のディレクトリにマウントしましたfstab
。
fstab
これはマシン2の項目の1つです。
[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ファイルでは1行にフォーマットされていますが、読みやすくするために上記の改行を追加しました。)
この設定は原則として機能し、nginxが提供するWebサイトから生徒の仕事にアクセスできることを意味します。
しかし、ユーザーが学生の課題を見ようとしたとき。ほとんどの場合、ユーザーはnginxで404エラーを受け取ります。ページをリロードすると、このエラーは解決されます。しかし、ほとんどのユーザーは(明らかに)そうしません。 (彼らはURLが間違っていると仮定するだけです。)
2つの可能な解決策があります。
- (優先:)404エラーの原因を修正するなど、fstabエントリをいくつか修正して404を修正します。
- (1.失敗した場合:)404エラーが発生したときにページを自動的にリロード(更新)するようにnginxを設定します。
答え1
nginx
プログラムが別のユーザーとして実行されているようです。デフォルトでは、インストールはそのインストールをインストールsshfs
したユーザーにのみ表示されます。
したがって、これらのファイルは(デフォルトで)nginx
表示されません。
sshfs
/にはオプションがありますfuse
(ファイルシステムsshfs
です)。fuse
もっと目立つようにしてください。 (覚えていませんが、指示に記載されています。)