Цель:
Я использую контейнер NGINX, в котором я монтирую удаленную файловую систему SSHFS в /usr/share/nginx/html, цель состоит в том, чтобы каждый раз использовать новый контейнер nginx без состояния, но с таким же постоянным содержимым.
Выполненные шаги:
Убедитесь, что сервер SSHFS запущен и работает.
В контейнере nginx (клиент sshfs) я смонтировал удаленную файловую систему sshfs в /usr /share /nginx /html
/ # sshfs root@X.X.106.181:/data /usr/share/nginx/html
root@X.X.106.181's password: / #
-Гора выглядит отлично:
/ # mount | grep sshfs
root@35.185.106.181:/data on /usr/share/nginx/html type fuse.sshfs
(rw,nosuid,nodev,relatime,user_id=0,group_id=0)
/ # df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 886G 681G 161G 81% /
none 886G 681G 161G 81% /
tmpfs 7.9G 0 7.9G 0% /dev
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/sda1 886G 681G 161G 81% /gns3
shm 64M 0 64M 0% /dev/shm
root@X.X.106.181:/data 976M 2.6M 907M 1% /usr/share/nginx/html
-Поставьте туда пару файлов, и они будут доступны для чтения всем:
/ # ls -la /usr/share/nginx/html
total 36 drwxr-xr-x 1 root root 4096 Aug 20 11:48 . drwxr-xr-x 5 root
root 4096 Aug 20 11:36 ..
-rw-r--r-- 1 root root 537 Aug 20 11:48 50x.html
-rw-r--r-- 1 root root 612 Aug 20 11:48 index.html
drwx------ 1 root root 16384 Aug 20 11:23 lost+found
-rw-r--r-- 1 root root 310 Aug 20 11:48 test.php
Желаемый результат:
Каким бы ни был новый контейнер nginx, я монтирую удаленный SSHFS, и у меня есть та же информация, которую просматривает пользователь.
Полученный результат:
Nginx не читает содержимое /usr /share /nginx /html.
Он действует как нет индексного файла.
В браузере ничего не отображается:
Журналы nginx:
/ # tail /var/log/nginx/error.log
2017/08/20 15:47:16 [crit] 139#0: *3 stat() "/usr/share/nginx/html/" failed (13: Permission denied), client: 192.168.122.247, server: ajnouri.local, request: "GET / HTTP/1.1", host: "192.168.122.100"
2017/08/20 15:47:16 [crit] 139#0: *3 stat() "/usr/share/nginx/html/404.html" failed (13: Permission denied), client: 192.168.122.247, server: ajnouri.local, request: "GET / HTTP/1.1", host: "192.168.122.100"
2017/08/20 15:47:16 [crit] 139#0: *3 stat() "/usr/share/nginx/html/404.html" failed (13: Permission denied), client: 192.168.122.247, server: ajnouri.local, request: "GET / HTTP/1.1", host: "192.168.122.100"
Похоже, "www-data" нужно записать в каталог.
####################### ОБНОВИТЬ
Итак, удалось сделать пользователя «www-data» обычным пользователем на сервере, и клиенту sshfs удалось смонтировать «/var/www» с помощью «www-data»
На сервере я сменил владельца домашнего каталога "www-data" (/var/www) на www-data:www-data
/ # chown -R www-data:www-data / var / www
/ # ls -la /var/www
total 36
drwxr-xr-x 1 www-data www-data 4096 Aug 20 11:48 .
drwxr-xr-x 5 root root 4096 Aug 20 11:36 ..
-rw-r--r-- 1 www-data www-data 537 Aug 20 11:48 50x.html
-rw-r--r-- 1 www-data www-data 612 Aug 20 11:48 index.html
drwx------ 1 www-data www-data 16384 Aug 20 11:23 lost+found
-rw-r--r-- 1 www-data www-data 310 Aug 20 11:48 test.php
######################
Кажется, не решить проблему.
Контейнер Nginx (клиент sshfs) и сервер sshfs используют одну и ту же ОС:
/ # lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty