J'ai suivi les instructions d'installation de phusion passenger avec nginx dans ubuntu. J'ai eu quelques problèmes pendant l'installation puisque j'utilise rvm et j'ai dû installer en tant que root et le programme d'installation n'arrivait pas à trouver rake donc j'ai temporairement choisi/appartenir à mon utilisateur et après installation j'ai redéfini la propriété à root. Je peux voir la page d'accueil nginx mais quand j'essaye de visiter une application sinatra, je suis interdit, l'hôte virtuel est pointé vers l'application publique sinatra et les permissions pour l'application entière sont 777.Message interdit lors de la diffusion d'un site local sinatra à l'aide du passager nginx
Répondre
Eh bien, mon erreur n'utilisait pas rvmsudo pour installer nginx avec passager, instructions ici: http://rvm.io/integration/passenger/.
S'il s'agit d'une production système, vous n'avez vraiment pas besoin de la flexibilité de RVM car vous devriez utiliser une seule version stable de Ruby and Rails for Phusion. Installez la version dont vous avez besoin, en utilisant Aptitude si cette version est disponible, et faite avec.
C'est une machine locale. Je veux nginx avec passager pour le développement. – Macario
Compris. Qu'est-ce que cela vous fait gagner en faisant tourner votre application Web Sinatra directement à partir de ruby, ou en utilisant rackup? – Paul
Eh bien, l'application est toujours disponible et vous n'avez pas à jongler avec différents ports si vous exécutez plusieurs applications, est juste plus pratique. – Macario
Essayez le Passager 3. Il détecte automatiquement la plupart des problèmes d'autorisation et vous indique comment les réparer.
Parce que c'est la page que Google m'a amené à ma question, ce qui est un problème passager, mais une question reverse-proxy Nginx, vous devez ajouter la ligne
disable :protection
quelque part dans votre sinatra app. J'ai le mien à la toute fin, en dehors de toute méthode (de portée globale).
Pour répondre aux downvote (s), oui, c'est la solution de piratage stupide et non sécurisée, mais cela devrait être assez évident à partir du code, en particulier les parties "désactiver" et "protection". Mais pour tous ceux qui se demandent pourquoi la mise à niveau de Sinatra vers une version plus récente l'a cassé, c'est parce que la version précédente n'avait pas cette protection par défaut pour commencer. – chbrown
De quel utilisateur nginx est-il en cours d'exécution? – Tom
Je suppose root car je démarre nginx avec sudo /etc/init.d/nginx Mais je n'ai pas d'utilisateur spécifié dans la configuration de nginx – Macario