Nous avons déployé notre application rails sur nginx et passagers.Par ailleurs, les pages de l'application sont partiellement chargées. Il n'y a pas d'erreur dans le journal des applications.
2011/02/14 05:49:34 [crit] 25389#0: *645 open() "/opt/nginx/proxy_temp/2/02/0000000022" failed (13: Permission denied) while reading upstream, client: x.x.x.x, server: y.y.y.y, request: "GET /signup/procedures?count=0 HTTP/1.1", upstream: "passenger:unix:/passenger_helper_server:", host: "y.y.y.y", referrer: "http://y.y.y.y/signup/procedures"
Réponses:
J'ai eu le même problème sur une configuration NGINX / PHP-FPM (php-fpm = fcgi amélioré pour php).
Vous pouvez savoir quel utilisateur les processus nginx s'exécutent en tant que
Et puis vérifiez si les autorisations dans vos fichiers proxy sont correctes
Dans mon cas, nginx s’exécutait en tant que
www-data
et deux des répertoires de mon répertoire proxy appartenaient à root.Je ne sais pas encore comment c'est arrivé, mais je l'ai corrigé en faisant (en tant que root)
la source
Vous avez probablement commencé avec l'utilisateur root, puis l'avez modifié. Maintenant, le problème est que les dossiers de cache, à savoir
sont déjà possédés par root, donc votre utilisateur nginx (ou ce que vous essayez de basculer vers) ne peut pas y accéder car ils ont une permission de 700.
Donc la solution est facile. Arrêtez nginx, puis:
ou quel que soit le chemin est sur votre distribution et libérer. Ensuite, redémarrez nginx qui recréera ces dossiers avec les autorisations appropriées.
la source
Vérifiez également le fichier nginx.conf pour vous assurer que vous spécifiez le groupe d'utilisateurs ET approprié.
J'ai eu un problème où les autorisations sur le répertoire ont été configurées pour nom d'utilisateur / nginx, mais l'utilisateur nginx.conf a uniquement spécifié le nom d'utilisateur. Par défaut, si aucun groupe n'est attribué à la directive user, celle-ci utilise le même nom que user. Donc, nom d'utilisateur / nom d'utilisateur essayait d'accéder à un répertoire au lieu de nom d'utilisateur / nginx. La mise à jour de la configuration a corrigé mes problèmes.
Voir: http://nginx.org/en/docs/ngx_core_module.html#user
la source
J'ai donc fait tout ce qui précède et malheureusement pour moi, cela me donnait la même erreur. Je suis en train d'exécuter une application rails emballée dans un fichier jar avec torquebox sur une machine centos 6.7 avec nginx. J'ai lutté pendant environ 3 heures jusqu'à ce que je trouve une autre solution et j'espère que cela aidera quelqu'un d'autre. Selon cet article, nginx peut s'exécuter en mode d'exécution. Je viens simplement de changer nginx en mode permissif avec
Avec cela, l'erreur avait disparu et je pouvais exécuter mon application dans un environnement de transfert / de production.
J'étais désemparé jusqu'à ce que j'ai trouvé l'erreur sur le site audit.log
J'espère vraiment que cela sauvera les 3 heures que je viens de perdre.
la source
setsebool -P httpd_can_network_connect 1
de stackoverflow.com/a/24830777/721331Lorsque vous démarrez nginx à partir d’un compte non privilégié, le
use_temp_path=off
.Cela devait éviter que nginx essaye de mettre les fichiers par défaut
proxy_temp_path
. Dans les documents nginx:la source
J'ai eu le même problème et il a été résolu par chmod dans ce répertoire.
la source