通过 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文件系统)。让它们更加明显。 (我不记得了,但说明书上有)。

相关内容