nginx 서버에서 sshfs 및 fstab을 통해 마운트된 리소스에 404 오류가 발생함 - 새로 고침 시 사라짐

nginx 서버에서 sshfs 및 fstab을 통해 마운트된 리소스에 404 오류가 발생함 - 새로 고침 시 사라짐

상황은 다음과 같습니다. 여기에 이미지 설명을 입력하세요

저는 nginx학생들의 작업을 제공하는 서버(머신 2)를 실행하고 있습니다. 학생 작품 자체는 다른 컴퓨터(컴퓨터 1)인 우리 gitolite​​서버에 있습니다.

및 데이터 전송을 최소화하기 위해 (그리고 편의를 위해) 학생 저장소(머신 1에 있음)를 해당 항목을 git clone통해 nginx 서버(머신 2)의 디렉터리로 마운트합니다 .sshfsfstab

이것은 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 오류를 받게 됩니다. 이 오류는 페이지를 새로고침하면 해결될 수 있습니다. 그러나 대부분의 사용자는 (분명히) 그렇게 하지 않을 것입니다(그들은 단순히 URL에 결함이 있다고 가정합니다).

두 가지 가능한 해결책이 있습니다.

  1. (선호:) fstab 항목을 일부 수정하여 404를 수정합니다(예: 404 오류의 원인 수정).
  2. (1. 실패하는 경우:) 404 오류가 발생하는 경우 페이지를 자동으로 다시 로드(새로 고침)하기 위해 nginx를 구성합니다.

답변1

나는 nginx다른 사용자로 실행되고 있다고 생각합니다. 그리고 기본적으로 sshfs마운트는 마운트한 사용자에게만 표시됩니다.

따라서 (기본적으로) nginx파일을 볼 수 없습니다.

sshfs/ 에 대한 옵션이 있습니다 fuse( 파일 시스템 sshfs입니다 fuse). 더 눈에 띄게 만들기 위해. (기억은 안나는데 메뉴얼에 나와있습니다.)

관련 정보