Je veux protéger ma nouvelle application Rails de Rails nouvellement déployée avec l'authentification HTTP de base. Il fonctionne sur le dernier nginx / passager et j'utilise la directive Nginx suivante pour protéger le répertoire racine Web:
directory index of "/var/www/mysite/public/" is forbidden, client: 108.14.212.10, server: mysite.com, request: "GET / HTTP/1.1", host: "mysite.com"
3 Réponses :
Vérifiez votre journal d'erreur NGinx. 403 code> signifie que vous avez le chemin de votre mot de passe. P>
J'ai vérifié, quand le chemin était faux j'avais [Erreur] 19756 # 0: * 1 Open () "/ opt / nginx / Conf / htpasswd" a échoué (2: aucun fichier ou répertoire de ce type) ... Donc je suis jolie Assurez-vous que maintenant mon chemin est correct.
Y a-t-il d'autres erreurs dans votre journal? Avez-vous créé vos mots de passe au format CRYPT () (et pas MD5, car NGinx ne les prend pas en charge)?
vous pouvez Laissez les rails gérer l'authentification
# application_controller.rb before_filter :authenticate protected def authenticate authenticate_or_request_with_http_basic do |username, password| username == "foo" && password == "bar" end end
Vous devez ré-spécifier Passenger_Enabled dans le bloc d'emplacement. P>
Ajouter "Passenger_Enabled on;" à l'intérieur du bloc d'emplacement.
Assurez-vous de redémarrer NGinx au lieu de le recharger: sudo /etc/init.d/nginx redémarrez code>