1. Contexte
Environnement du serveur : CentOS7/Nginx1.10.0
2. Problème
Après avoir modifié le répertoire racine Web par défaut de Nginx, un problème 403 Forbidden se produit lors de l'accès au site Web.
Répertoire par défaut : /usr/share/nginx/html
[root@AllenServer html]# pwd
/usr/share/nginx/html
[root@AllenServer html]# ls -al
总用量 16
drwxr-xr-x. 2 allen allen 71 5月 29 01:45 .
drwxr-xr-x. 5 allen allen 51 6月 1 14:47 ..
-rw-r--r--. 1 allen allen 537 4月 26 23:11 50x.html
-rw-r--r--. 1 allen allen 22 5月 29 01:45 index2.php
-rw-r--r--. 1 allen allen 617 5月 29 01:23 index.html
-rw-r--r--. 1 allen allen 167 5月 29 01:36 index.php
Nouveau répertoire : /home/nginx/default
[root@AllenServer default]# pwd
/home/nginx/default
[root@AllenServer default]# ls -al
总用量 16
drwxrwxrwx. 2 nginx nginx 71 6月 2 17:15 .
drwxrwxrwx. 3 nginx nginx 20 6月 1 16:10 ..
-rwxrwxrwx. 1 nginx nginx 537 6月 1 16:11 50x.html
-rwxrwxrwx. 1 nginx nginx 22 6月 1 16:11 index2.php
-rwxrwxrwx. 1 nginx nginx 618 6月 2 17:15 index.html
-rwxrwxrwx. 1 nginx nginx 167 6月 1 16:11 index.php
Fichier de configuration Nginx :
[root@AllenServer default]# more /etc/nginx/nginx.conf
user nginx;
#user root;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
Profil du site :
[root@AllenServer conf.d]# more default.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
#root /usr/share/nginx/html;
root /home/nginx/default;
#root /test;
index index.html index.htm index.php;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
#root /usr/share/nginx/html;
root /home/nginx/default;
#root /test;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
#root /usr/share/nginx/html;
root /home/nginx/default;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
3. Description
(1) Il est normal d'accéder au répertoire par défaut avant de modifier la configuration ;
(2) Redémarrez le service Nginx après avoir modifié la configuration ;
(3) Un problème 403 se produit lors de l'accès après avoir modifié la nouvelle racine Web ; annuaire.
Pouvez-vous s'il vous plaît me dire comment résoudre ce problème ?
Les problèmes d'autorisation sont généralement vérifiés comme ceci :
Passer à l'utilisateur utilisant le logiciel problématique. Par exemple
su - nginx
Essayez d'entrer dans le répertoire problématique un niveau à la fois en commençant par /
Essayez de lire le fichier
Lors de l'accès à un fichier, non seulement les autorisations du fichier cible doivent être autorisées, mais également les autorisations de tous les niveaux des répertoires supérieurs.
Regardez à quelle étape l'erreur est signalée et vous saurez où se situe le problème.
Notez également qu'en plus des autorisations POSIX de base, vos autorisations incluent également SELinux. Veuillez vérifier si SELinux est activé, SELinux doit également autoriser nginx à y accéder. Si le problème est causé par SELinux, SELinux dispose d'un programme de reporting spécial pour afficher des informations détaillées.