nginx liest nicht gemountet / usr / share / nginx / html

976
AJN

Tor:

Ich verwende einen NGINX-Container, in dem ich ein Remote-SSHFS-Dateisystem in / usr / share / nginx / html einhänge. Der Zweck besteht darin, jedes Mal einen neuen zustandslosen Nginx-Container zu verwenden, der jedoch denselben persistenten Inhalt hat.

Durchgeführte Schritte:

- Stellen Sie sicher, dass der SSHFS-Server läuft.
-Im nginx-Container (sshfs-Client) habe ich das ferne sshfs-Dateisystem in / usr / share / nginx / html angehängt

/ # sshfs root@X.X.106.181:/data /usr/share/nginx/html root@X.X.106.181's password: / # 

-Die Montierung sieht gut aus:

/ # 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  

-Legen Sie ein paar Dateien und sie sind für jeden lesbar:

/ # 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 

Erwünschtes Ergebnis:

Was auch immer der neue nginx-Container ist, ich mounte das Remote-SSHFS und habe dieselben Informationen, die vom Benutzer durchsucht werden.

Erhaltenes Ergebnis:

Nginx liest den Inhalt von / usr / share / nginx / html nicht. Es fungiert als keine Indexdatei.
Im Browser wird nichts angezeigt:

nginx liest nicht gemountet / usr / share / nginx / html


nginx Logs:

/ # 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"  

Sieht aus, als müsste "www-data" in das Verzeichnis schreiben.

######################## UPDATE

Es ist also gelungen, "www-data" -benutzer zu machen, da es ein normaler Benutzer auf dem Server war, und der sshfs-client konnte "/ var / www" mit "www-data" einhängen.

Am Server habe ich den Besitzer des Home-Verzeichnisses "www-data" (/ var / www) in www-data: www-data geändert

/ # 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 

#######################

Scheint das Problem nicht zu lösen.


Nginx-Container (sshfs-Client) und sshfs-Server verwenden dasselbe Betriebssystem:

/ # lsb_release -a  Distributor ID: Ubuntu Description: Ubuntu 14.04.1 LTS Release: 14.04 Codename: trusty 
0
Welche Fehler werden in den Nginx-Serverprotokollen angezeigt? Jakuje vor 6 Jahren 2
Danke @Jakuje. Ich habe die Protokolle vergessen. Zur Frage hinzugefügt AJN vor 6 Jahren 0
Wäre es nicht eine gute Idee, das Verzeichnis mit den Berechtigungen des nginx-Benutzers bereitzustellen, anstatt sie für die Welt lesbar zu machen? Der Fehler ist offensichtlich, dass es sie nicht lesen kann (aus welchem ​​Grund auch immer). Jakuje vor 6 Jahren 0
@ Jakuje Ich habe den Besitzer des Verzeichnisses in www-data: www-data geändert, aber das Problem wird nicht gelöst. AJN vor 6 Jahren 0

2 Antworten auf die Frage

0
Quarind
  1. Versuchen Sie, sshfs von www-data wie hier zu mounten
  2. Versuchen Sie, das Stammverzeichnis außerhalb von sshfs festzulegen und eine Verbindung zur Site herzustellen
  3. Vergewissern Sie sich, dass Sie Zeile in der Konfiguration haben

    index index.html index.htm;

oder verbinden Sie sich über einen vollständigen Link mit der Site, zum Beispiel 192.168.0.20/index.html

  1. tail -f Sie nginx Zugriffs- und Fehlerprotokolle
Hallo @Quarind, ich habe es geschafft, den sshfs-Server mit dem Benutzer "www-data" zu mounten (da er ein normaler Benutzer war) und habe den Besitz des Home-Verzeichnisses auf dem Server in "www-data" geändert. keine Änderungen, noch Erlaubnis verweigert AJN vor 6 Jahren 0
0
LordAro

Für diejenigen, die in der Zukunft hilfreich sein könnten, hatte ich dieses Problem, und nach etwas mehr Recherche stellte ich fest, dass das Hinzufügen -o allow_otherdes Mount-Aufrufs dazu führte, dass es funktioniert

Keine Ahnung, was es unter der Haube macht oder warum es notwendig ist (UID oder GID setzen tut nichts), aber da sind wir.

Quelle: https://stackoverflow.com/questions/29330382/how-to-enable-writing-to-sshfs-directory-in-php