저는 nginx
학생들의 작업을 제공하는 서버(머신 2)를 실행하고 있습니다. 학생 작품 자체는 다른 컴퓨터(컴퓨터 1)인 우리 gitolite
서버에 있습니다.
및 데이터 전송을 최소화하기 위해 (그리고 편의를 위해) 학생 저장소(머신 1에 있음)를 해당 항목을 git clone
통해 nginx 서버(머신 2)의 디렉터리로 마운트합니다 .sshfs
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에 결함이 있다고 가정합니다).
두 가지 가능한 해결책이 있습니다.
- (선호:) fstab 항목을 일부 수정하여 404를 수정합니다(예: 404 오류의 원인 수정).
- (1. 실패하는 경우:) 404 오류가 발생하는 경우 페이지를 자동으로 다시 로드(새로 고침)하기 위해 nginx를 구성합니다.
답변1
나는 nginx
다른 사용자로 실행되고 있다고 생각합니다. 그리고 기본적으로 sshfs
마운트는 마운트한 사용자에게만 표시됩니다.
따라서 (기본적으로) nginx
파일을 볼 수 없습니다.
sshfs
/ 에 대한 옵션이 있습니다 fuse
( 파일 시스템 sshfs
입니다 fuse
). 더 눈에 띄게 만들기 위해. (기억은 안나는데 메뉴얼에 나와있습니다.)