403 interdit de nginx en ubuntu

J’ai lu le guide de débutant de nginx :

server { location / { root /data/www; } location /images/ { root /data; } } 

http: //localhost/images/example.png -> /data/images/example.png

http: //localhost/some/example.html -> /data/www/some/example.html

Donc, ma configuration nginx:

  server { listen 443; server_name localhost; ssl on; ssl_certificatee /home/attolee/sslkey/example.crt; ssl_certificatee_key /home/attolee/sslkey/example.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ALL:!ADH:!EXPORT56:-RC4+RSA:+HIGH:+MEDIUM:!EXP; ssl_prefer_server_ciphers on; location / { root /home/attolee; index index.html; } location /hi/ { root /home/attolee; index hi.html; } } 

je veux

  1. https: // hôte / access à /home/attolee/index.html,
  2. https: // host / hi / access à /home/attolee/hi/hi.html,

Maintenant 1 travail, 2 échoués, 403 interdits.

le journal des erreurs me dit 13: Permission denied .

Donc, je vérifie propre et groupe de / home / attolee et / home / attolee / hi /, ainsi que hi.html.

 drwxr-xr-x 6 attolee attolee 4096 Nov 2 17:08 attolee/ drw-rw-rw- 2 root root 4096 Nov 2 17:12 hi/ -rw-rw-rw- 1 root root 24 Nov 2 17:12 hi.html 

puis vérifiez que la propriété USER du processus nginx en utilisant htop est root.

Comment régler ceci?

Tout d’abord, dans votre exemple, vous devriez faire ceci:

 root /home/attolee; index index.html hi.html location / { try_files $uri $uri/ =404; } 

Deuxièmement, vous n’avez pas besoin de lancer nginx en tant que root. Dans le nginx.conf, vous pouvez changer cela en www-data par exemple. Vous devez déplacer / home / hi à l’intérieur de / home / attolee / et définir / home / attolee avec le bon propriétaire.