Ich habe nginx 1.1.19 unter Ubuntu 12.04 auf meinem lokalen Computer installiert und die Standardeinstellung beibehalten, /etc/nginx/nginx.conf
außer die Benutzeranweisung zu ändern.
/etc/nginx/nginx.conf
user nginx www-data;
worker_processes 4;
pid /var/run/nginx.pid;
...
Ich möchte, dass eine einfache statische Site mit dem Webstamm in meinem Benutzerverzeichnis funktioniert (Nehmen wir an, mein Benutzername ist 'ubuntu'). Hier ist die Konfiguration für meine Testseite.
/ etc / nginx / sites-available / test-site
server {
#listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6
root /home;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
}
Jetzt werden natürlich alle meine Dateien im Webstamm abgelegt, sodass ich dies NICHT auf einem echten Server ablegen würde, aber dies verdeutlicht meinen Standpunkt. Wenn ich eine einfache Webseite unter /home/index.html erstelle (nicht in meinem Ubuntu-Benutzerordner), kann ich auf die Seite unter zugreifenhttp://localhost/
Das funktioniert gut. Jetzt möchte ich einfach das Webstammverzeichnis INSIDE nach Benutzerordner ablegen. Also ändere ich in / etc / nginx / sites-available / test-site die Root-Direktive in `root / home / ubuntu;. Ich erstelle den Symlink zur Testseite neu, verschiebe /home/index.html nach /home/ubuntu/index.html und stoppe und starte den Nginx-Server. Jetzt bekomme ich den 403 Forbidden Fehler.
Mein erster Verdacht war, dass dies ein Zulassungsproblem war. Wenn ich jedoch renne, ls -al index.html
sehe ich
-rw-r--r-- 1 nginx www-data 183 Aug 12 13:13 index.html
was sieht für mich richtig aus? Sogar das Ausführen von chmod 777 /home/ubuntu/index.html, damit die Berechtigungen erhalten bleiben
-rwxrwxrwx 1 nginx www-data 183 Aug 12 13:13 index.html
hilft nicht. /etc/init.d/nginx configtest
erzeugt auch keine Fehler und ich bin mir sicher, dass der Symlink in/etc/
Ich bin also seit ein paar Stunden dabei und frage mich jetzt, was an meinem Benutzerverzeichnis so besonders ist, dass ich nichts darin bereitstellen kann. Ubuntu verschlüsselt heutzutage Home-Verzeichnisse? Könnte das das Problem sein? Ich habe dieses Problem auch auf einer EC2 Ubuntu 12.04-Instanz (weiß nicht, ob Benutzerverzeichnisse dort verschlüsselt sind)
setfacl -m 'u:nginx:--x' /home/given_user