Erreur 403 de ressource statique de proxy inverse nginx ?
为情所困
为情所困 2017-06-28 09:22:47
0
2
887

Déployez le projet Node pour les tests en ligne. Lors de l'utilisation du proxy inverse nginx, une erreur de ressource statique 403 se produit. La configuration locale est correcte, mais la même configuration en ligne produit une erreur :

upstream nodeblog{
        server 127.0.0.1:3000;
        keepalive 65;
}
server {
        listen 443;
        ssl on;
        server_name ;
        ssl_certificate ;
        ssl_certificate_key ;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ;
        ssl_session_timeout 5m;
        ssl_prefer_server_ciphers on;
        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_set_header X-Nginx-Proxy true;
                proxy_set_header Connection '';
                proxy_pass http://nodeblog;
        }
        location ~ .*\.(css|js|jpg|png|gif)$ {
                alias "/root/nodeApp/public/";
                expires 3d;
        }
}

En suivant les invites, j'ai défini les autorisations 777 pour tous les fichiers du répertoire, mais j'ai toujours une erreur 403

为情所困
为情所困

répondre à tous(2)
巴扎黑

J'ai trouvé une raison. Comme il fonctionne avec les autorisations root, il se peut que nginx n'ait pas d'autorisations sur le répertoire. Par conséquent, le serveur personnel n'a pas attribué d'autres utilisateurs, alors ouvrez la première ligne dans nginx.conf et changez d'utilisateur. personne à l'utilisateur root pour que nginx puisse s'exécuter avec les privilèges root.

Ce n'est certainement pas une bonne solution. J'ai une compréhension générale de la raison de 403. Le processus nginx ne dispose pas des autorisations pertinentes pour le dossier de ressources statiques actuel. Vous devez définir séparément les autorisations de nginx pour ce répertoire.
J'espère qu'il y en a. une bonne solution

过去多啦不再A梦

La raison est que la commande alias n'a pas été utilisée correctement.
Documents officiels

Si l'alias est utilisé à l'intérieur d'un emplacement défini avec une expression régulière
alors cette expression régulière doit contenir des captures et l'alias doit
faire référence à ces captures (0.7.40)
http://nginx.org/r/alias

Essayez la configuration suivante

        location ~ .*\.(css|js|jpg|png|gif)$ {
                alias "/root/nodeApp/public/";
                expires 3d;
        }
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal