Aquí hay un bosquejo de la situación:
Estoy ejecutando un nginx
servidor (máquina 2) que proporciona el trabajo de nuestros estudiantes. El trabajo del estudiante se encuentra en otra máquina (máquina 1): nuestro gitolite
servidor.
Para minimizar git clone
la transferencia de datos (y por conveniencia), estoy montando los repositorios de estudiantes (que se encuentran en la máquina 1) como directorios en el servidor nginx (máquina 2) a través de las entradas sshfs
correspondientes fstab
.
Esta es una de las fstab
entradas en la máquina 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
(nota: en el archivo fstab esto está escrito como una sola línea, pero para facilitar la lectura, agregué nuevas líneas arriba)
Esta configuración funciona en principio, lo que significa que se puede acceder a los trabajos de los estudiantes a través del sitio web proporcionado por nginx.
Pero cuando un usuario intenta ver el trabajo del estudiante. La mayoría de las veces, el usuario recibirá un error 404 de nginx. Este error se puede solucionar simplemente recargando la página. Pero la mayoría de los usuarios (obviamente) no harán eso (simplemente asumen que la URL es defectuosa).
Veo dos posibles soluciones:
- (preferido:) arreglar el 404 mediante alguna modificación en la entrada fstab, por ejemplo, arreglando la causa del error 404
- (si 1. falla:) configurar nginx para recargar (actualizar) automáticamente la página, si ocurre un error 404.
Respuesta1
Creo que se nginx
está ejecutando como un usuario diferente. Y, de forma predeterminada, sshfs
los montajes solo son visibles para el usuario que los monta.
Por lo tanto (por defecto) nginx
no se pueden ver los archivos.
Hay opciones para sshfs
/ fuse
( sshfs
es un fuse
sistema de archivos). para hacerlos más visibles. (No lo recuerdo, pero está en el manual).