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
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
La raison est que la commande
alias
n'a pas été utilisée correctement.Documents officiels
Essayez la configuration suivante