10
votes

Mot de passe Protection des rails Site fonctionnant sur NGinx et Pays Passager

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"


0 commentaires

3 Réponses :


2
votes

Vérifiez votre journal d'erreur NGinx. 403 signifie que vous avez le chemin de votre mot de passe.


2 commentaires

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)?



6
votes

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


0 commentaires

17
votes

Vous devez ré-spécifier Passenger_Enabled dans le bloc d'emplacement.


2 commentaires

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