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 오류를 받습니다. 페이지를 다시 로드하면 이 오류가 해결됩니다. 그러나 대부분의 사용자는 (분명히) 그렇게 하지 않습니다. (그들은 단지 URL이 잘못되었다고 가정할 뿐입니다.)

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

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

답변1

nginx프로그램이 다른 사용자로 실행되고 있는 것 같습니다 . 기본적으로 sshfs설치는 해당 설치를 설치한 사용자에게만 표시됩니다.

따라서 이러한 파일은 (기본적으로) nginx표시되지 않습니다 .

sshfs/에는 옵션이 있습니다 fuse( 파일 시스템 sshfs입니다 ). fuse더 눈에 띄게 만드세요. (기억이 나지 않지만 지침에 나와 있습니다.)

관련 정보